progressive-disclosure refactor of SKILL.md (302 → 159 lines) + scope-comma guard, v1.8.0 - #1
Conversation
Progressive disclosure per the writing-great-skills review: migration is a single-branch path, so its ~110 lines leave SKILL.md's top level. The new references/migration.md is the one authoritative migration document — discovery/consent, KI-001 rationale, merged step-by-step flow, authoritative command reference, and Kind/disposition rules — absorbing both SKILL.md's detail and workflow.md's parallel seven-step section. SKILL.md and workflow.md keep the preflight rules, the byte-synced MIGRATION_GATE block, and an imperative read-in-full pointer. Sentence-level no-op pruning takes SKILL.md from 302 to 195 lines. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Front-loads the preflight leading word, gives each lifecycle branch (create / update / audit / close out / migrate) exactly one trigger, and drops identity prose duplicated by the body (110 words, within the 40-160 gate). The activation boundary is unchanged, so the trigger matrix stays as-is; the invocation-semantics decision (check stays model-invoked, migration stays in-skill via progressive disclosure, no router) is recorded in docs/design-decisions.md. Continued no-op pruning lands SKILL.md at 178 lines. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds the leading-words anchor — 'Migration is a two-phase commit: the audit is the prepare phase; nothing is deleted until it votes yes.' — immediately above the gate block in SKILL.md and at the top of references/migration.md. The sentence stays outside the byte-synced MIGRATION_GATE markers so the three gate copies remain the only enforced duplication. Negation scan: hard guardrails (never-delete, silence-is-not-consent, the frozen gate wording) stay verbatim; remaining soft negations were already rewritten positively during the Phase 1 split. SKILL.md lands at 180 lines. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…to 1.8.0 Phase 4 of the writing-great-skills refactor: a Shared Vocabulary section in docs/domain-models.md (scope, tracker-dir, preflight, two-phase commit, Kind, disposition) instead of a new CONTEXT.md; a six-failure-mode SKILL.md editing checklist in AGENTS.md; and a design-decision entry recording that the eval suite is not tautological with SKILL.md (graders assert only on script output in disposable repos). Both plugin manifests bump 1.7.1 -> 1.8.0 for the user-visible description and structure changes. Dogfood progress item closed through the real lifecycle scripts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Collapses README's fourth paraphrase of the migration audit conditions — the most drift-prone restatement — into the two-phase-commit framing with a link to references/migration.md, and adds the same pointer to project-overview §1.1. Other description surfaces (plugin manifests, openai.yaml, the agent frontmatter) describe behavior the refactor did not change, so they stay as-is. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 24 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe progress-tracker refactor centralizes migration guidance, revises skill operating rules, strengthens CLI scope validation and output, updates supporting documentation and evaluation coverage, records the work, and bumps plugin versions to 1.8.0. ChangesProgress-tracker contract and scope validation
Estimated code review effort: 3 (Moderate) | ~25 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@progress/_plans/skill-docs-progressive-disclosure-progress-tracker-improvement-plan.md`:
- Around line 3-5: Reconcile the baseline line count in the plan’s opening
metadata with the 302-line starting value recorded in PROGRESS.md. Document the
intermediate 309→302 measurement and how it was obtained, or update the cited
baseline so the ≤180-line acceptance metric can be reproduced consistently.
- Around line 94-95: Update the Phase 4 plan deliverable and acceptance-table
entries referencing CONTEXT.md to point to the implemented domain-models.md
artifact, including the corresponding references in the affected sections. If
both files are intentionally required, explicitly document their distinct
responsibilities and retain both paths.
In `@progress/2026-07-28-skill-docs-progressive-disclosure/PROGRESS.md`:
- Around line 4-8: Update
progress/2026-07-28-skill-docs-progressive-disclosure/PROGRESS.md lines 4-8 to
set Status to review; replace the placeholder background and empty task list at
lines 18-25 with the actual completed record; revise lines 35-44 to remove the
premature closed-as-done claim and record the actual merged PR or commit; update
progress/INDEX.md line 13 to mirror review now and change to done only after
merge.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 68b61f1d-b102-445e-8891-1251722e9520
📒 Files selected for processing (14)
.claude-plugin/plugin.json.codex-plugin/plugin.jsonAGENTS.mdREADME.mdagents/progress-tracker.mddocs/design-decisions.mddocs/domain-models.mddocs/project-overview.mdprogress/2026-07-28-skill-docs-progressive-disclosure/PROGRESS.mdprogress/INDEX.mdprogress/_plans/skill-docs-progressive-disclosure-progress-tracker-improvement-plan.mdskills/progress-tracker/SKILL.mdskills/progress-tracker/references/migration.mdskills/progress-tracker/references/workflow.md
…s context-engineering post Records how the refactor maps onto the post's paradigm shifts and the two deliberate divergences: incident-driven gate wording stays (the load-bearing minority of rules), and CLI examples/Key-arguments stay pending a separate interface-design experiment. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Interface-design experiment, evaluated by a fact-by-fact coverage matrix against live --help output and probed error messages: the interface fully teaches slug format, scope syntax/defaults, plan resolution, dir containment, and root discovery, and every probed mistake fails with an actionable message. Those sentences leave SKILL.md (180 -> 162 lines) behind a read---help-first pointer. Behavioral policies and the one silent failure the interface cannot catch (an unescaped comma splits a --scope entry without error) stay in SKILL.md. Method and adoption rationale recorded in docs/design-decisions.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Closes the one silent-failure trap the interface-design pass could not teach: an unescaped comma in --scope with adjacent whitespace is now rejected as ambiguous (the error teaches both resolutions), an empty entry from a trailing/leading/doubled comma is rejected instead of silently dropped, and both CLIs echo the parsed scope names in normal mode so any remaining wrong split is immediately visible. With the failure now loud, the escaping rule moves out of SKILL.md (159 lines) into --help, leaving always-pass---plan as the sole interface-untaught rule. Adds 16 pytest cases, the ambiguous-scope-refuse scenario (15 total), and syncs workflow.md, domain-models.md, design-decisions.md, and evals/README.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/progress-tracker/scripts/new_progress.py`:
- Around line 582-584: Update the --scope help text near parse_scope() to state
that leading, trailing, or doubled commas produce rejected empty entries.
Preserve the existing wording about unescaped commas with adjacent whitespace
and the default branch behavior.
In `@skills/progress-tracker/scripts/update_progress.py`:
- Around line 594-597: Distinguish an explicitly provided empty scope from an
omitted scope in the update command. Change both the mutation guard near the
argument validation and the scope-processing condition around parse_scope and
replace_scope_table to check args.scope is not None instead of truthiness, then
add a regression test covering update with --scope "" and --work-log, including
the expected empty-scope behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1938da9c-0bf7-422b-a488-f39a8ff825e0
📒 Files selected for processing (10)
docs/design-decisions.mddocs/domain-models.mdevals/README.mdevals/scenarios/ambiguous-scope-refuse/scenario.jsonskills/progress-tracker/SKILL.mdskills/progress-tracker/references/workflow.mdskills/progress-tracker/scripts/new_progress.pyskills/progress-tracker/scripts/test_new_progress.pyskills/progress-tracker/scripts/test_update_progress.pyskills/progress-tracker/scripts/update_progress.py
🚧 Files skipped from review as they are similar to previous changes (2)
- skills/progress-tracker/references/workflow.md
- docs/domain-models.md
…iew status, plan deviations recorded
- update_progress.py: --scope checks use 'is not None' so an explicitly
empty --scope reaches parse_scope and fails loudly ('no valid entries')
instead of being silently treated as omitted — both at the mutation
guard and at the replacement site. Two pytest cases added (193 total).
- new_progress.py --help: empty-entry wording now names leading commas
too, matching parse_scope's actual contract.
- Progress records: item status done -> review in PROGRESS.md and
INDEX.md (an item is not done while its PR is open); Outcome links the
PR; the premature close is corrected by an appended log line, not
rewritten history.
- Plan snapshot: dated deviation record explains the 309 -> 302 baseline
(measured a day apart across other main landings) and the Phase 4
reroute from CONTEXT.md to domain-models.md §0 Shared Vocabulary.
- design-decisions: new entry recording why shared vocabulary lives in
domain-models.md rather than a repo-root CONTEXT.md (and when to
revisit, given doc-architect 2.4.0's opt-in glossary module).
Gate: verify.sh all green, uvx ruff==0.16.0 clean, pytest 193 passed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Addressed all 5 CodeRabbit findings in e7f7fcb:
Gate: 🤖 Generated with Claude Code |
CodeRabbit's review-status finding on PR #1 was only partially addressed by e7f7fcb: Status/INDEX/Outcome were corrected, but Background & goals was still the unfilled template placeholder and Task list still had two empty checkboxes. Fills both in against the actual delivered work, and drops a stray empty Work log bullet left over from the initial scaffold. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What changed
Executes the writing-great-skills improvement plan for the progress-tracker skill, in eight reviewable commits (each passed the full gate before the next started):
references/migration.mdis the single authoritative migration document (discovery/consent, KI-001 rationale, merged step-by-step flow, authoritative command reference, Kind/disposition rules). It absorbs both SKILL.md's ~110-line migration detail and workflow.md's parallel seven-step section. SKILL.md and workflow.md keep only the preflight rules, the byte-syncedMIGRATION_GATEblock, and an imperative read-in-full pointer.docs/design-decisions.md.docs/domain-models.md(instead of a new CONTEXT.md), a six-failure-mode SKILL.md editing checklist inAGENTS.md, an eval-tautology audit recorded in design decisions, and the plugin version bump 1.7.1 → 1.8.0 in both manifests.--helpbefore first use" pointer, evaluated via a fact-by-fact coverage matrix against live--helpoutput and probed error messages.--scopecomma with adjacent whitespace is rejected as ambiguous (error teaches both resolutions), empty entries (trailing/leading/doubled comma) are rejected instead of silently dropped, and both CLIs echo the parsed scope names (Scope: api · worker (2 entries)) in normal mode. The escaping rule then moved out of SKILL.md into--help. Final SKILL.md size: 159 lines.Why
Migration is a single-branch path, yet its detail occupied ~110 of SKILL.md's 302 lines of always-loaded context, and the same seven-step contract was restated nearly in full in workflow.md. This PR moves that cost behind a pointer, deduplicates the contract to one authoritative home, prunes no-op sentences, defers argument semantics to the CLI's own interface, and hardens the one input ambiguity that used to fail silently — SKILL.md lands at 159 lines (was 302).
Reviewer notes
MIGRATION_GATEblock remains byte-identical in SKILL.md, workflow.md, andagents/progress-tracker.md(verify.sh check 3b) and is deliberately not copied into migration.md — that would be a fourth, unchecked drift copy.agents/progress-tracker.mdkeeps its condensed migration paraphrase (a subagent definition must be self-contained) plus the same read-in-full pointer; recorded as accepted residual duplication in design decisions.review≠done,planningdefault, terminals); the frozen lifecycle diagram remains canonical and the script still enforces transitions.--helpor by an actionable error at the moment of the mistake. Method recorded indocs/design-decisions.md.api,worker(no whitespace) still separates entries.migration.mdis intentionally absent from verify.sh's scaffold-link map, so it is never copied into user projects; scaffolded seed docs already direct readers back to the installed skill.progress/2026-07-28-skill-docs-progressive-disclosure/), including the enforcedin-progress → review → doneclose-out.Verification
bash scripts/verify.sh— all 22 checks pass (includes pytest with 16 new cases, grader regression, and the 15 end-to-end scenarios)uvx ruff==0.16.0 check .— clean (CI-pinned version)./evals/scripts/run_scenarios.sh— 15/15 (new:ambiguous-scope-refuse)python3 evals/scripts/test_grade_scenarios.py— OK🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Tests