Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add nguyenvanphituoc/shapeup-sdlc-plugin/plugin install shapeup-sdlc-pluginWrote 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/skills/nguyenvanphituoc/shapeup-sdlc-plugin/scope-architect)<a href="https://agentmods.dev/skills/nguyenvanphituoc/shapeup-sdlc-plugin/scope-architect"><img src="https://agentmods.dev/badge/skills/nguyenvanphituoc/shapeup-sdlc-plugin/scope-architect.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.1 | $0.00131 | $0.02276 |
| Opus 5 | $0.00066 | $0.01138 |
| Sonnet 5 | $0.00026 | $0.00455 |
| Haiku 4.5 | $0.00013 | $0.00228 |
Grade A, and why
scope-architect 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 8d 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 — 151 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scope Architect (pure worker v1.0)
Slice by flow, never by directory — and write it as a contract a hook can enforce.
Groups a feature's tasks into independent, vertically-sliced scopes and writes each as a
committed contract (shapeup/<slug>/scopes/<scope-id>.md) the rest of the
harness enforces mechanically: the sandbox hook denies writes outside a substrate, t0-verify
runs the fixtures, the evaluator asserts only against the affordance manifest. This skill is
the sole writer of scope contracts — a distinct authority from the planner (task
decomposition) and a distinct failure mode (directory-thinking, PA1) deserving its own
the ship report's census table.
Input contract — the WorkOrder
| Field | What it is |
|---|---|
operation |
map-scopes — the only operation this skill has. It covers first slicing after the board exists, folding discovered items in, and re-slicing a stuck scope; the payload says which of those you are doing |
payload.feature / payload.spec_folder |
Slug + committed spec (read ux-behavior.md for manifests; usecases for flows) |
payload.tasks[] |
The board's tasks with their touched files — the slicing INPUT only. Each carries use_case_refs; those UC ids are what you write into the contract. Never copy a task id into a contract |
substrate.allowed |
scopes/*.md + scope-board.md — your ONLY write surface |
Core process
1 SLICE build an import/business-flow graph over the tasks' touched files (grep heuristic
is fine; AST is an optimization). One scope = one call chain: the UI screen + the
API route + the use case + the repository it drives. Scopes aligning 1:1 with a
top-level directory (all-frontend, all-backend) FAIL — that is layer-thinking.
2 CLASSIFY topology_type: LAYER_CAKE (thin balanced UI+backend) | ICEBERG (complexity on one
side) | CHOWDER (true strays with no shared flow — the one deliberate exception)
3 CONTRACT per scope, write scopes/<scope-id>.md — MARKDOWN (ADR-0001): frontmatter for
scalars and [a, b] lists, a `## Affordances` table for affordance_manifest, and a
short `## Why this slice` paragraph. A reviewer must be able to read the substrate
in a PR; regeneration preserves prose under headings you do not own.
scope_id, topology_type — the stable join key is the scope
use_cases[] — the UC ids this scope implements.
THE ONLY LINK YOU WRITE TO THE
WORK: never task ids. The contract
is committed and the board is not,
so a TASK-NNN here dangles on
every other clone (spec-lint
TIER-DIRECTION reds it). The
scope's tasks are re-derived from
the board's own use_case_refs
covers[] — optional REQ-ids from
requirements.md this scope answers
for; stable, never renumbered
depends_on[] — scope_ids this scope builds AFTER.
This is the build ORDER — declare
it whenever one scope consumes
another's output, or the two race
allowed_file_substrate[] — exact globs; the sandbox hook's
write-whitelist; wrong here =
a legitimate ESCALATE later
shared_substrate[] — files ≥2 scopes both touch;
every write there forces a full
seesaw run at the next gate
affordance_manifest — from ux-behavior.md state
tables: every interactive
element as {test_id, role} +
required_states [idle, loading,
success, error, empty]
e2e_verification_fixtures[] — the command(s)/spec file(s)
that drive this scope
end-to-end (T0 layer); too
speculative to fixture → mark
TBD and flag it, never invent
a fixture for unbuilt behavior
hill_phase: "UPHILL_UNKNOWN" — ALWAYS; phase is derived from
T0/T1/seesaw facts later,
never authored
4 LINT node "${CLAUDE_PLUGIN_ROOT}/kernel/harness.mjs" verify spec --slug <slug>
→ PA1 (directory alignment), PA2 (>~15 files), DISJOINT (undeclared overlap),
SCOPE-ANCHOR (empty/unresolvable use_cases), TIER-DIRECTION (a task id in a
committed contract), SCOPE-DEPS (depends_on naming a scope that isn't here).
Fix reds by re-slicing, not by silencing.
5 BOARD regenerate scope-board.md — a VIEW of the contracts, nothing more:
| scope_id | topology | use_cases | depends_on | files | lint |
Every column restates a field the contract already declares, so the board can be thrown
away and rebuilt. Do NOT add a `wave` column: waves are Kahn levels of `depends_on` and
`probe resume` derives them at dispatch — a hand-written copy of a derived value drifts,
which is exactly why `unlocks` stopped being authored. The BUILD ORDER lives in each
contract's `depends_on`; the board only shows it.
A `TASK-` id anywhere in a contract or the board — a column, a cell, or a sentence in
the prose — is spec-lint TIER-DIRECTION red. The board is committed; ids are not.
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.
- 8d ago First seen · 151 lines · 131 tokens per session scan A 2925d788f8c1
scope-architect is a skill published in the GitHub repository nguyenvanphituoc/shapeup-sdlc-plugin (2 stars, last pushed yesterday), licensed MIT. It adds 131 tokens to every session and 2,276 once invoked, about $0.0007 per session on Opus 5. 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-31.
Other skills, from other repositories
agui-dotnet-streaming-chat
Get started with the AG-UI .NET SDK: bootstrap and run your first streaming-chat app (client + server) with the AG-UI .NET NuGet packages (AGUI.Client, AGUI.Server, AGUI.Formatting, AGUI.Abstractions). USE FOR: which packages to install and how to wire them; constructing an AGUIChatClient against an endpoint and…
agui-dotnet-protobuf
Use the protobuf wire transport (instead of the default Server-Sent Events) for an AG-UI connection with the AG-UI .NET SDK — a compact binary event stream negotiated via the Accept header. USE FOR: making an AGUIChatClient prefer protobuf by wiring an AGUIEventStreamHandler with ProtobufEventStreamFormatter (then…
cog-knowledge-consolidation
Build structured knowledge frameworks from scattered vault notes with source attribution.
quality-hooks
Language-specific auto-lint/format/typecheck pipeline. Supports Python (ruff+pyright), TypeScript (prettier+eslint+tsc), Go (gofmt+golangci-lint). Auto-fix and convergence loops.
revdiff-plan
Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay. Extracts the most recent response from Codex rollout files and opens it in revdiff for review and annotation. Activates on "revdiff-plan", "review plan with revdiff", "annotate plan", "review last response"…
strict-tdd
Strict RED->GREEN->REFACTOR test-driven development with enforcement. Never write production code before a failing test. Atomic commits per TDD cycle.