ConectLens Agent Skills Ruleset
ConectLens adapts Agent Skills conventions into LenserFight terminology without replacing the existing automation layer.
Current State
- File-first automation already exists through markdown objects and
lf validate. - Native ConectLens primary files are now discovered by filename:
LENS.MD,LENSER.MD,COLENS.MD,BATTLE.MD, andTEAM.MD. - Compatibility files remain valid:
SKILL.MD,AGENT.MD,AGENT_TEAM.md,WORKFLOW.MD, andPRIVATE_BATTLE.md. - Parameter placeholders use
[[name]]; stored database templates may use[[:uuid]]. - Lens parameter declarations mirror
lenses.version_parameters: each declaration needslabelandtool_id. - Local battle runtime state is private runtime data and is written outside the project by default.
Terminology
| Agent Skills term | ConectLens term | Native file |
|---|---|---|
| Skill | LENS | LENS.MD |
| Agent | LENSER | LENSER.MD |
| Workflow | COLENS | COLENS.MD |
| Orchestration / comparison | BATTLE | BATTLE.MD |
| Skill team | Team | TEAM.MD |
| references | references | references/ |
| scripts | scripts | scripts/ |
| assets | assets | assets/ |
| evals | evals | evals/ |
SKILL.MD can be used as a compatibility wrapper, but LENS.MD is the native source of truth.
Package Layout
Use folder-based units:
.lenserfight/
lenses/example-lens/LENS.MD
lensers/example-lenser/LENSER.MD
colenses/example-colens/COLENS.MD
battles/example-battle/BATTLE.MD
teams/example-team/TEAM.MDOptional supporting material belongs next to the primary file:
references/ long reference material
scripts/ non-interactive reusable scripts
assets/ templates and static files
evals/ fixtures, rubrics, and behavior checksFrontmatter references to these files must be relative to the package root and stay inside the expected folder. For example, a script reference must point to scripts/....
LENS Rules
A basic LENS.MD can stay simple:
---
name: repo-architect
description: Use when repository structure must be discovered before planning changes.
---
# Mission
Inspect the codebase before proposing abstractions.Parameterized lenses must declare every [[parameter_name]] placeholder:
parameters:
- label: parameter_name
tool_id: 11111111-1111-4111-8111-111111111111tool_id is a UUID because it mirrors lenses.version_parameters.tool_id, which references lenses.tools(id).
BATTLE Rules
BATTLE.MD is an orchestration document, not a generic skill file. It may reference LENS, COLENS, LENSER, teams, models, humans, evals, scoring, comparison settings, and runtime execution details.
A valid battle should declare participants or orchestration references:
participants:
- type: lens
ref: ../lenses/a/LENS.MD
- type: lenser
ref: ../lensers/reviewer/LENSER.MDStorage Rules
Commit project-safe packages under .lenserfight/, such as reusable LENS.MD files and their public references/, scripts/, assets/, and evals/.
Keep private runtime data outside the project:
- local battle state
- tokens and auth state
- provider keys and BYOK material
- execution traces containing private prompts or outputs
- private logs
The CLI writes new local battle state to user runtime storage. Existing .lenserfight/local-battles/*.json files are read for compatibility and migrated on access when possible.
Migration Notes
- Move reusable local prompt packages into folder units with native primary files.
- Rename
agents/tolensers/,workflows/tocolenses/,AGENT.MDtoLENSER.MD, andWORKFLOW.MDtoCOLENS.MD. - Compatibility aliases remain readable, but canonical files win mixed-state conflicts and new files must use
lensers/,colenses/,LENSER.MD, andCOLENS.MD. - Use
lf migrate-terminologyfor a dry-run plan orlf migrate-terminology --applyto rename safely. The bash helperscripts/migrate-lenserfight-terminology.shsupports the same migration for project, nested, and user-global.lenserfightdirectories. - Keep legacy
SKILL.MD,LENSER.MD,COLENS.MD, andPRIVATE_BATTLE.mdfiles only while consumers are migrating. - Do not add secrets to markdown frontmatter, YAML templates, scripts, or examples.
- Add
parametersonly when the body uses[[...]]placeholders. - Move project-root local battle JSON files out of Git history and into user runtime storage.
Validation
Use the CLI validator:
lf validate .lenserfightValidation checks primary-file discovery, frontmatter parsing, parameter declarations, unit-root reference paths, script paths, eval paths, and BATTLE participant shape.