Skip to content

[Hackathon] Installed skill files go stale silently: version marker at install + "agent status" #123

Description

@Andy00L

Discord Username / User ID

interferon0

What does this improvement do?

agent install writes the verification-loop skill files into user projects, but the written artifacts carry no version or content marker (wrapSkill/wrapMdc at src/lib/agent-targets.ts:115-121; the managed-section sentinels are versionless at :200-202) and no command can report staleness (agent registers only install and list, src/commands/agent.ts:821-869; doctor and the skill-nudge check presence only). So when a CLI update changes a skill body, every already-onboarded project keeps steering its coding agent with the OLD contract forever — and the drift is already real: the shipped verify skill still tells agents to run auth whoami, which the CLI has deprecated in favor of auth status. Add (1) a one-line marker in every written artifact (, an HTML comment valid in all five target formats), and (2) an agent status subcommand reporting ok / stale / modified / unmarked / absent / corrupt per target and skill, with --output json and a non-zero exit on stale/modified so it can gate CI or an agent preflight.

Details / implementation notes

Staleness compares the BODY hash, not the CLI version, so a release that does not change a body does not churn user files (keeps the codex byte-identity unchanged path intact, agent.ts:268-271). VERSION already exists (src/version.ts); hash via node:crypto. agent status reuses the existing TARGETS/pathFor/classifySection machinery; the corrupt state is already classified (agent.ts:211-227). Overlap disclosed plainly: the filed doctor issue #73 checks skill PRESENCE only; making doctor's row version-aware is a natural one-line extension once markers exist and can be folded there — the marker and the status command are outside #73's reach. No new dependency. PR to follow once assigned.

Confirmations

  • I have searched existing issues and this is not a duplicate.
  • I have provided my Discord identity above for reward coordination.

Metadata

Metadata

Assignees

Labels

hackathonCLI hackathon submissionsin-progressAssigned and actively being worked on

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions