method-sprint
Opens, closes, and reports scoped analysis sprints with a named reviewer, planned SAP outputs, and data-lock checks. Use when the user opens, closes, or checks a sprint.
- License 许可
- MIT
- 最近更新
- 2026-11-01
- Stars
- ★ 6
- Forks
- 0
01 前言 Front Matter
- name
- method-sprint
- description
- Opens, closes, and reports scoped analysis sprints with a named reviewer, planned SAP outputs, and data-lock checks. Use when the user opens, closes, or checks a sprint.
- argument-hint
- <start|close|status>, optional name and reviewer, e.g. start sprint-01 reviewer=jcr scope=SAP-5.1,SAP-5.2
02 资源文件 3
- 参考文档references/audit-checklist.md2.5 KB
- 参考文档references/sprint-log-schema.yaml2.0 KB
- 脚本scripts/sprint.py7.6 KB
03 SKILL.md 正文
Sprint Cadence with Human Audit Gates
Skill Value
- Problem it solves: Analysis work becomes unbounded without explicit scope, reviewer, planned outputs, and closure checks.
- Use when: The user wants an auditable analysis sprint, human signoff, scoped SAP execution, or sprint closeout.
- Output: Sprint log/status with scope, reviewer, planned-vs-actual outputs, and closeout findings.
- Ask only if: Only when sprint name, reviewer, scope, or planned output rows are missing.
- Do not do: Do not open a sprint without entry criteria or close one without checking planned outputs.
- Interaction: Check repo/config/chat evidence first. Ask one decision-changing question at a time; use the current harness's blocking question UI when available, otherwise present numbered choices and wait.
Wraps method-work in bounded sprints with explicit entry/exit criteria and human reviewer sign-off. The frictionless feel of method-work is preserved; the sprint adds structure around it so analyses can be audited unit-by-unit.
When this skill activates
- Before starting analysis work that needs human sign-off (most academic / regulated work)
- After
method-planSAP andmethod-sap-workbookare done and the SAP is locked - Manual:
method-sprint start sprint-02 reviewer=jcr scope=SAP-5.1,SAP-5.2 - Closing a sprint:
method-sprint close
Prerequisites
- A locked SAP exists (
analysis/sap.mdwithsap_versionfrontmatter) analysis/sap-tables/02-outputs.csvexists (frommethod-sap-workbook)- A locked data wave exists in
analysis/data-waves.md(and.methodsmith/data-state.yamlwhen that optional state file is used)
Core workflow
method-sprint start <name>
-
Check that no other sprint is currently
openinanalysis/sprint-log.yaml(the canonical top-level audit-trail file written byscripts/sprint.py). Refuse to open a second concurrent sprint -- one in flight at a time. Usemethod-sprint closefirst. -
Resolve the scope. The user passes
scope=SAP-5.1,SAP-5.2(SAP section ids) orscope=table:T1,T2(table ids from sap-tables). Resolve to a list of rows from02-outputs.csvwhoseScript Sectionor legacyanalysis_sectionmatches. Ignore section banner rows where only the first cell is populated. -
Resolve the reviewer. The user passes
reviewer=<name>or, if absent, prompt for one. The named human is the person who will sign the sprint summary. Their name lands insprint-log.yaml-- this is the audit-trail anchor. -
Check entry criteria:
- Prior sprint (if any) has status
signed_off - Data wave is
locked - SAP
sap_versionis committed (no uncommitted SAP edits) - Stack profile is set
If any fails, refuse to open the sprint and report what's blocking.
- Prior sprint (if any) has status
-
Append the new sprint entry to
analysis/sprint-log.yaml(top-level, one file per project — every sprint becomes a list item undersprints:). SetSKILL_DIR="<absolute path of the directory containing this SKILL.md>";, then runpython3 "$SKILL_DIR/scripts/sprint.py" open <name> --scope <SAP-section-csv> --reviewer <reviewer>; it refuses if a sprint is open or the name exists, writesname,status: open,scope,reviewer,opened_at,commit_open, and emptyoutputs_planned/outputs_actual, and prints__CE_SPRINT__ action=open .... Then filloutputs_plannedfrom step 2 and addentry_criteriato that entry:
sprints:
- name: sprint-02
status: open
scope: [SAP-5.1, SAP-5.2]
reviewer: jcr
opened_at: 2025-04-28T09:00:00Z
commit_open: <sha>
outputs_planned:
- { id: T3, output_file: table-mortality-by-arm.csv, subfolder: tables/, sap_section: SAP-5.1 }
- { id: F2, output_file: km-curve-overall.png, subfolder: figures/, sap_section: SAP-5.2 }
outputs_actual: []
entry_criteria:
sap_version: 2
data_wave_id: wave_2025_03_15
prior_sprint: sprint-01 (signed off 2025-04-20)
- Print a one-line summary and hand off to
method-workwith the planned-outputs list as the task seed. The user works inside the sprint as they would insidemethod-worknormally; the sprint just bounds what's in scope.
method-sprint close
Status flow in analysis/sprint-log.yaml: open -> pending_review (script, awaiting audit) -> closed_pending_signoff (audit passed) -> signed_off (human reviewer). A failing audit returns the sprint to open.
-
Set
SKILL_DIR="<absolute path of the directory containing this SKILL.md>";(the shell starts in the project root, not the skill directory), then runpython3 "$SKILL_DIR/scripts/sprint.py" close <name>(<name>defaults to the currently open sprint). The script flips status topending_review, capturesclosed_atandcommit_close, and prints a human-readable__CE_SPRINT__ action=close ...line, a machine-parseable dispatch hint, and anext:reminder:__CE_SPRINT_AUDIT_DISPATCH__ sprint=<name> reviewer=method-sprint-audit-reviewer human_reviewer=<name> scope=<csv> commit_open=<sha> commit_close=<sha> -
Parse the
__CE_SPRINT_AUDIT_DISPATCH__line into its key=value fields and dispatchmethod-sprint-audit-reviewerthrough the platform's subagent primitive (Agent/Taskin Claude Code,spawn_agentin Codex, orsubagentin Pi). Omit permission-mode overrides. If no subagent primitive exists, run the audit sequentially in the current agent. Use this prompt contract:Agent: method-sprint-audit-reviewer Description: Audit sprint <name> Prompt: Sprint name: <name> Human reviewer: <human_reviewer> Scope (SAP sections in this sprint): <scope> Commit range: <commit_open>..<commit_close> Verify, in order: 1. Every row in analysis/sap-tables/02-outputs.csv whose `Script Section` or legacy `analysis_section` is in <scope> has a corresponding artifact at the expected `Output File (SITE_ID_ prefix added automatically)` or legacy `output_file` under the expected `Subfolder` or legacy `subfolder`. 2. No files outside <scope>'s SAP-section ownership were edited between <commit_open> and <commit_close> (use `git diff --name-only <commit_open> <commit_close>`). 3. Outputs produced that are NOT in 02-outputs.csv: list them (warn-level, not blocking). 4. All planned Quarto/notebook chunks in scope ran without errors (look for `Error in ...` in any *.log captured during the sprint). 5. Reproducibility re-check: hash each declared output and compare to the hash captured at last execution if available. Return JSON: { "verdict": "pass" | "fail", "p0_count": <int>, "p1_count": <int>, "p2_count": <int>, "blocking_findings": [ {file, line, severity, title}, ... ], "advisory_findings": [ ... ] } -
On a passing audit verdict, write the sprint summary to
analysis/sprints/<name>/summary.md. On a failing verdict, flip the sprint back tostatus: openso the user can address findings; do not write a summary.
# Sprint <name> Summary
Reviewer: <name>
Opened: ... Closed: ...
Scope: SAP-5.1, SAP-5.2
## Outputs produced
| ID | File | Hash | Status |
| T3 | tables/table-mortality-by-arm.csv | abc123 | ok |
| F2 | figures/km-curve-overall.png | def456 | ok |
## Out-of-scope edits detected
None
## Audit reviewer findings
- 0 P0, 1 P1 (minor table-1 column-order drift), 0 P2
## Sign-off
Reviewer (<name>): ☐
Date: ____________
- Update
sprint-log.yaml:
status: closed_pending_signoff
audit_reviewer_findings: { P0: 0, P1: 1, P2: 0 }
-
If the project uses publication review packs, append or update an entry in the
method-signoffsignoff ledger that points toanalysis/sprints/<name>/summary.md, the audit verdict, and the named reviewer. Do not mark it approved until the human reviewer has signed. -
Print
__CE_SPRINT_CLOSED__ name=<name> findings_p0=<n> awaiting_signoff=trueand prompt the user to share the summary with the reviewer. For manuscript-facing projects, suggestmethod-signoffto build the PI-facing package and validate the signoff ledger. -
After the named reviewer signs off, record it with
python3 "$SKILL_DIR/scripts/sprint.py" signoff <name> --by <reviewer>(sameSKILL_DIRanchor as step 1). The script refuses unless the sprint isclosed_pending_signoffand<reviewer>is the sprint's named reviewer, then writesstatus: signed_off,signed_off_by, andsigned_off_at. Never hand-edit these fields; confirm the__CE_SPRINT__ action=signoffline with the user.
method-sprint status
With SKILL_DIR set as above, run python3 "$SKILL_DIR/scripts/sprint.py" status [--name <name>] and print the current sprint state plus the audit-reviewer findings if closed-pending. Useful for "where am I?".
What this skill does NOT do
- Does not run analysis itself (that's
method-work) - Does not pick the scope -- the user picks SAP sections
- Does not bypass
method-review-- code review still runs as normal during the sprint; the sprint audit is at close time only - Does not enforce sprint duration -- a sprint can be 1 hour or 3 weeks; what matters is the bounded scope and the named reviewer
References
@./references/sprint-log-schema.yaml
@./references/audit-checklist.md
04 同仓库更多 Skills
skill-one
Sample skill
disabled-skill
A skill with model invocation disabled
claude-only-skill
A skill restricted to Claude Code only
default-skill
暂无简介
custom-skill
暂无简介
method-write
Drafts, revises, and audits evidence-bound manuscripts, sections, abstracts, and reviewer responses with claim provenance. Use when scientific prose must be written or revised (entry point).