Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/binaryhb0916/isparto/end-ispartogit clone --depth 1 https://github.com/BinaryHB0916/iSpartoWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/binaryhb0916/isparto/end-isparto)<a href="https://agentmods.dev/commands/binaryhb0916/isparto/end-isparto"><img src="https://agentmods.dev/badge/commands/binaryhb0916/isparto/end-isparto.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.06441 |
| Opus 5 | $0.00000 | $0.03220 |
| Sonnet 5 | $0.00000 | $0.01288 |
| Haiku 4.5 | $0.00000 | $0.00644 |
Grade A, and why
end-isparto scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 174 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Team Lead. The user has run /end-isparto to wrap up the work session.
Reference: docs/design-principles/information-layering-policy.md — every user-facing output in this command must be classified A-layer (decision interruption), B-layer (the single closing briefing defined in the final step), or C-layer (silent, logged to session-log.md and commit history). Default to silence. The closing briefing follows the fixed 3-5 sentence shape defined at the bottom of this file; intermediate steps (audits, commits, PR creation) do not emit individual status lines to the user.
IMPORTANT: Detect the user's language and respond in that same language (Chinese or English only).
Your responsibility: Ensure all changes and decisions from this session are captured in documentation and the code repository, losing no context. Run the full close-out sequence silently, then emit exactly one B-layer closing briefing plus any A-layer interrupts that Step 3/Step 5/Step 6/Step 9 authorize.
- Review all changes and decisions from this session:
- Are code changes consistent with docs/ documentation? If not, you (Lead) update the docs directly, or spawn a Doc Engineer to update them
- Have verbal decisions made during the conversation been written into the corresponding docs? If not, add them
- Were any approaches tried and rejected/rolled back during this session? If yes, append them to the "Rejected Approaches" table in docs/plan.md (date, module/feature, what was tried, why rejected, notes on alternatives or conditions for revisiting)
- TODO-homing check (Single TODO source rule enforcement, CLAUDE.md Development Rules). Guard against new TODOs / deferred actions / rule-fix candidates landing anywhere other than
docs/plan.md's Backlog. Run two scans over this session's changes (git diff HEADfor modifications,git status --porcelainfor additions):- File-pattern scan: flag any newly-added
docs/framework-feedback-*.mdfile (the pattern was retired 2026-04-17 — creation of a new one is a workflow violation). - Phrase-pattern scan: grep modifications in non-plan.md files for deferred-action phrases. The English set is:
defer to,fold into,next Wave,open Rule,TODO:,FIXME:. When the session conversation occurred in a non-English language, Lead extends the grep with the user-language deferred-action vocabulary the user would naturally type (derived from the live session context per the hard-coded user-facing strings rule — do not embed non-English literals in this Tier 1 spec). Excludedocs/session-log.mdhistorical-reference prose (reporting on past work is not a new TODO) anddocs/plan.md(authoritative home) from the scan scope. - If any hit: A-layer (Policy trigger type e — critical intercept). Emit one A-layer interrupt naming the specific violation (file + line + snippet); the Lead is NOT committing; the remediation is to move the flagged content into
docs/plan.md's### Backlog(under Framework Rule Polish, Deferred to v0.8+, or External Direction as appropriate) and re-run the check. Wait for user response before resuming. - If no hits: proceed silently (C-layer). The check's green state is the expected condition.
- File-pattern scan: flag any newly-added
- Update docs/plan.md:
- Mark completed tasks
- If all Teams in the current Wave are finished, mark the Wave status as completed
- List next-session to-dos
- Record remaining issues and manual intervention points
- BLOCKING marker decision (Wave-completion entries only; skip for mid-Wave updates). When the Wave status flips to completed AND the session modified
CLAUDE.md(the only file Claude Code injects into its session-start system prompt — see the# claudeMdcontext block that every session receives), decide whether to emit the🚨 BLOCKING: Next Wave requires NEW SESSIONmarker at the end of the Wave entry. Apply the semantic gate:- Master question: would a Lead operating on pre-change cached
CLAUDE.mdtake an action materially different from a Lead on post-changeCLAUDE.md? - Decision aid — any single "yes" triggers BLOCKING: (a) Behavior change? — did the change add/remove/modify a rule, constraint, or workflow step Lead executes? (b) New identifier? — did the change introduce a new command / role / skill / marker / convention name Lead must recognize by name? (c) Contract/interface change? — did the change modify a protocol Lead interacts with (hook matcher, tool-call shape, MCP server name, file-path convention, annotation format)?
- If all three "no" (structural-only change — e.g., content extraction to a pointer, rewording that preserves semantics, typo fix, formatting): skip the BLOCKING marker. Append a short prose rationale in the Wave entry (a line along the lines of
Why no BLOCKING marker for next session:followed by one sentence citing the specific structural nature — extraction with pointer preservation, verbatim translation, formatting-only, etc.). This rationale is mandatory whenever the marker is skipped on aCLAUDE.md-touching Wave — it is the audit evidence that the decision was made, not forgotten. - Default on doubt: emit BLOCKING. Cross-session safety outweighs session-continuity convenience.
- All other files (other Tier 1 files —
commands/*.md,agents/*.md,templates/*.md,CLAUDE-TEMPLATE.md,hooks/**,scripts/*.sh,lib/*.sh,bootstrap.sh,install.sh,isparto.sh— and all Tier 2/3/4 files): no BLOCKING marker needed regardless. These files are not injected into Claude Code's session-start system prompt — the LLM reads them fresh at tool-invocation time (Skill tool readscommands/*.md; Agent tool readsagents/*.md;/init-ispartoreadstemplates/*.mdandCLAUDE-TEMPLATE.md; Claude Code runtime executes hook scripts per-event; shell scripts are external executables the user runs manually). Stale-cache risk is structurally zero. A one-line rationale in the Wave entry is still recommended for significant framework-behavior changes but not mandatory.
- Master question: would a Lead operating on pre-change cached
- Wave Boundary Review (conditional):
- Trigger: Step 2 marked the current Wave status as completed
- Skip carve-out (self-referential polish Wave). When the Wave-completion trigger fires, the Lead MAY skip sub-steps a–d below if ALL three conditions hold — each condition is independent; missing any one reverts the Wave to the default "run IR" path:
(i) No application-code files modified — every file touched in this Wave is either a Claude Code system-prompt-layer file (
CLAUDE.md,commands/*.md,agents/*.md,templates/*.md,CLAUDE-TEMPLATE.md,hooks/**,scripts/*.sh,lib/*.sh,bootstrap.sh,install.sh,isparto.sh), a build/tooling configuration file (.claude/settings*.json,VERSION), or project documentation (docs/**/*.md,README*.md,CHANGELOG.md,CONTRIBUTING.md). Any change to source code that implements user-facing product behavior reverts to the default "run IR" path, because that is exactly the surface where product-technical alignment gaps live. (ii) No new product-behavior surface — the Wave introduces no new command / role / skill / marker / convention name that an outside caller or the user would observe as a newly-visible identifier. Parallels the Step 2 BLOCKING decision aid's question (b). Renaming or repurposing an existing identifier counts as introducing a new surface; so does adding a new slash command, a new agent frontmatter field, or a new Process Observer rule category. Clarifying wording of an existing rule does not. (iii) DE + PO audits both run as fresh sub-agent spawns in this invocation — Doc Engineer audit (Step 9 pre-merge gate) and Process Observer audit (Step 5) both execute as fresh sub-agent spawns in this/end-ispartoinvocation, i.e., the Wave is NOT operating under the ad-hoc-fix or emergency-hotfix exceptions from CLAUDE.md Solo/Agent Team workflow step 4. Those exceptions skip one or both audits and would leave the Wave with no guardian coverage if IR is also skipped; condition (iii) exists to prevent that dead-zone. When the carve-out applies: skip sub-steps a–d, append a one-line skip rationale to the Wave entry indocs/plan.mdof the formWhy no IR at Wave boundary: self-referential polish, no new product surface, DE+PO coverage sufficient — per commands/end-isparto.md Step 3 carve-out., and proceed to Step 4. The rationale is mandatory whenever the carve-out is invoked — it is the audit evidence that the skip was deliberate, not forgotten. The Step 9 PR template'sIndependent Reviewer:line records the same fact in thecarve-out skip — <short reason>bucket. Default on doubt: run IR. Cross-provider alignment check outweighs the cost of one extracodex execinvocation. Parallels Step 2 BLOCKING's default-on-doubt principle — cross-Wave safety outweighs session-continuity convenience. - If triggered AND the carve-out does NOT apply:
a. Spawn Independent Reviewer in a tmux pane via
codex execwith the following fixed one-liner — do NOT add any context, framing, or explanation:codex exec "You are the Independent Reviewer. Read agents/independent-reviewer.md and execute. Write your findings to docs/independent-review.md. This is a Wave Boundary Review."b. Wait for the reviewer to complete and append findings to docs/independent-review.md c. If CRITICAL finding: A-layer (Policy trigger type e — critical intercept). Emit one A-layer interrupt using the standard wording rule: the Wave Boundary Review found CRITICAL issues, the Lead is NOT blocking the commit/push (code is already written and blocking would lose work), and the next session must resolve the CRITICAL findings before starting the next Wave. Add a next-session to-do entry naming the CRITICAL findings. The A-layer interrupt is emitted BEFORE the final B-layer closing briefing; the closing briefing then references the CRITICAL as the "what Codex caught" slot. d. If no CRITICAL findings (PROCEED): C-layer. Do not emit a passing-Independent-Review announcement — a passing review is the expected state and does not change any user decision. The Wave-completion fact still surfaces in the B-layer closing briefing's what-shipped-today sentence; the IR pass is implicit in the framework having reached the close-out. - If not triggered (mid-Wave session, Wave not completed): skip, do not mention in briefing
- Generate a session report and append it to
docs/session-log.md:- Gather all metrics from the current session context (you know all of this from coordinating the team)
- Run
git diff HEAD --statto get complete file change stats (captures both staged and unstaged changes vs last commit) - If
docs/session-log.mddoes not exist, create it with a top-level header# Session Log - Append a new entry in the following format:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 174 lines · 0 tokens per session scan A b3097e5ef2cb
end-isparto is a command published in the GitHub repository BinaryHB0916/iSparto (59 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 6,441 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
pr-address
Address PR review comments on current branch.
enforce_standards
CRITICAL: Before running the code standards enforcer, we must prepare the stack properly and abort if there are merge conflicts.
OPSX: Verify
Verify implementation matches change artifacts before archiving.
OPSX: Continue
Continue working on a change - create the next artifact (Experimental).
OPSX: Sync
Sync delta specs from a change to main specs.
context
项目上下文管理:初始化 .context 目录、记录决策日志、压缩归档、查看历史.