chore: track sprint docs, ignore .vscode, emit metrics (S6-005)#98
Merged
Conversation
…print metrics (S6-005) Three independent hygiene chores per the S6-005 spec: - Track docs/sprints/S5-specs.md and docs/archive/unified-roadmap-2026-04-07.md: both were referenced by the S5 archive but never committed (content identity verified against the main checkout via git hash-object). - Ignore .vscode/ (locked decision: gitignored, not committed) and .sprint-metrics.json (local runtime state, same class as .context-usage). Both verified untracked beforehand — purely additive, no git rm --cached. - Wire sprint-metrics emission (Default D12): sprint-metrics.sh gains phase and status subcommands with auto-init from SPRINT.md's **Sprint:** line (fallback "unknown"), and sprint-update.sh invokes them best-effort (jq-guarded, || true) after each successful phase/status/sprint-status edit — the script existed and the retro consumed its output, but nothing ever invoked it, so S5's retro fell back to git-log parsing. Metrics failure can never fail the SPRINT.md update (observability, not control). Verified: phase/status auto-init + transitions via jq asserts in a temp fixture; jq-stripped PATH still updates SPRINT.md with exit 0; existing init/item-start/item-complete/cycle/rework/finalize unchanged; suite 590/590. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- item-start now emits transitions:[] so items have identical schema regardless of creation path (item-start vs status auto-create) - init heredoc gains phases:[] to match auto_init's schema exactly - emit_metrics prints a one-line stderr advisory when jq is absent instead of silently skipping (never-fail contract preserved) - top-level usage string now lists the phase subcommand Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Repo housekeeping (sprint item S6-005):
docs/sprints/S5-specs.mdanddocs/archive/unified-roadmap-2026-04-07.md(previously untracked working artifacts now part of the record)..vscode/and.sprint-metrics.jsonto.gitignore.sprint-metrics.shgainsphaseandstatussubcommands (with auto-init when the metrics file is absent);sprint-update.shauto-invokes metrics emission as a best-effort side channel — a metrics failure can never fail a SPRINT.md update.Review fix-now items applied (
922e46b): uniform item schema (transitions: []in item-start), uniform file schema (phases: []in init), stderr advisory when jq is absent, andphaseadded to the usage string.Gitignore-safety verification
git ls-files .vscodeandgit ls-files .sprint-metrics.jsonboth returned empty before the ignore entries were added — neither path was ever tracked, so the ignores are purely additive (no untracking, no working-copy risk on checkout).Test plan
bash -non both scripts (LF endings preserved per.gitattributes)initandstatus-auto-init emit identical schemas;item-startandstatus-created items have identical shape;phaseappends to the phases timeline; jq-absent path prints the advisory, exits 0, and still updates SPRINT.mddotnet build TradingSystem.sln— 0 warnings, 0 errorsdotnet test TradingSystem.sln— 590/590 passedNo trading logic, Program.cs, csproj, or DI changes — no host-boot smoke required.
🤖 Generated with Claude Code