Skip to content

v4.3.0: structured files[] schema in plan/ship task metadata - #64

Merged
NOGIT007 merged 1 commit into
mainfrom
feature/structured-files-schema
May 13, 2026
Merged

NOGIT007 merged 1 commit into
mainfrom
feature/structured-files-schema

Conversation

@NOGIT007

Copy link
Copy Markdown
Contributor

Summary

  • metadata.files moves from ["path:line"] strings to {path, symbol, line, op} entries (op ∈ add | modify | replace | delete).
  • LSP-resolved symbol persists from /code:plan into TaskCreate; subagents in /code:ship skip rediscovery on cold start.
  • Plan-time path validation against git ls-files (modify/replace/delete) or FILE-REFERENCE.md modules (add); deletion of superseded code is now an explicit op:delete entry rather than prose under rationale.

Why

The "LSP for symbols" rule already resolved each acceptance criterion to a qualified Rust symbol — we just dropped the name before TaskCreate. Implementer subagents then re-grepped for what the orchestrator already knew. On an 8-task ship run, ~15-45k tokens of pure rediscovery. Cost of the change: ~280 extra tokens per plan. The contract is symbol (drift-tolerant); line is a hint.

Files

  • code-et-implementer/commands/plan.md — LSP persistence + path validation + new files[] schema with per-field table
  • code-et-implementer/commands/ship.md — dispatch prompt renders each entry as - <op> <path>[:<line>] → <symbol>
  • code-et-implementer/CLAUDE.md — task metadata convention example updated
  • code-et-implementer/.claude-plugin/plugin.json — 4.2.3 → 4.3.0
  • CHANGELOG.md — 4.3.0 entry

Test plan

  • Run /code:plan on a small feature; confirm tasks land with structured files[] entries and the task-created hook still passes
  • Run /code:ship against the resulting tasks; verify subagent prompts contain the - <op> <path> → <symbol> rendering
  • Confirm path validation rejects a modify entry against a path not in git ls-files

🤖 Generated with Claude Code

`metadata.files` moves from `["path:line"]` strings to typed
`{path, symbol, line, op}` entries with op ∈ {add, modify, replace,
delete}. Plan-time LSP already resolved the symbol — we just stopped
throwing the name away before TaskCreate. Subagents in /code:ship
skip rediscovery grep on cold start; deletion of superseded code is
now an explicit op:delete entry instead of prose buried in rationale.

Plan validates each path against `git ls-files` (modify/replace/delete)
or FILE-REFERENCE.md modules (add) before dispatch. Ship renders entries
as `- <op> <path>[:<line>] → <symbol>` in the dispatch prompt.

Net: ~280 extra tokens/plan, 15-45k saved per /code:ship dispatch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@NOGIT007
NOGIT007 merged commit 590469b into main May 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant