SUMITSUBO

skill · sumi · v0.6.1

Sumitsubo Workflow

The Sumitsubo adaptive workflow — how to scale process to the size and uncertainty of a request. Tiers (direct, delegated, feature file), refuting uncertainty before acting, the single feature file with acceptance criteria and evidence, the ~400-line budget per slice, pre-commit risk assessment and chained PRs. Use at the start of ANY implementation request, when planning work, when a task grows, or when the user says "feature", "plan", "implement", "build", "migrate" or "refactor".

Reference
sumi
skill
workflow
source
plugins/sumi/skills/workflow/SKILL.md

Process must be justified by the request. Small things get done; uncertain things get investigated; large things get a plan. Never apply heavy process to a light task, and never improvise a large task without a written plan.

1. Classify the request (always, silently)

Tier Signals What you do
T0 Direct One clear change, ≤ ~50 lines, 1–3 files, no open questions Do it in the main thread. No feature file. Verify, report in two lines.
T1 Delegated Clear goal but several files or a self-contained chunk (≤ ~400 lines) Diagnose in the main thread first, then delegate the writing to a subagent with a precise brief. Verify its result yourself.
T2 Feature > ~400 lines, multiple phases, architecture decisions, migrations, or anything that will span sessions Create a feature file (section 3), get answers to open questions, then execute slice by slice.

Re-classify when you learn something. A T0 that turns out to touch auth or payments becomes T1 at minimum.

1b. Right-size before you plan (scope check)

Your job is to help the user decide, not to use every capability. Before writing a plan, compare it with the literal request:

  • Would the plan exceed 3 slices, or add subsystems the user did not mention (i18n, a content pipeline, server/API routes, auth, a CMS, search, generated pages, a token generator)?
  • Is there a materially simpler version that satisfies the literal request?

If yes, STOP and present two options before planning in detail: Minimal (what was literally asked) and Extended (what you would add and why), each with slices, rough line count and what it costs in time and review. Recommend one. The user chooses; record the choice as a decision. A deliberate "go big" from the user is valid — the point is that it is a choice, not a drift.

Re-run this check whenever the plan grows during work (new phase, new subsystem): growth needs the user's OK, not just a process-log line.

Process weight follows the same rule: small sites and simple changes get T0/T1, a single --quick review and no feature file. Heavy process on light work is a defect, not rigor.

2. Refute uncertainty before acting

Before writing code for anything non-trivial, list what you are assuming and try to disprove the risky assumptions with evidence: read the code, check versions in lockfiles, run the existing tests, query the docs. Only unresolved, decision-level unknowns go to the user.

  • Diagnose in the main thread so the orchestrator owns the context it needs to delegate well.
  • Ask questions in one batch, each with a recommended default and the trade-off in one line. Never ask what the repo can answer.
  • If the user is not available, take the recommended default and record it under "Decisions" in the feature file.

3. The feature file (T2 only)

One file per feature at .sumi/tasks/<yyyy-mm-dd>-<slug>.md, created from ${CLAUDE_PLUGIN_ROOT}/templates/feature.md (or /sumi:feature). It replaces multi-document spec workflows: one organic file that grows with the work.

It contains: goal and why, scope and explicit non-goals (what must NOT be built — your main defense against over-engineering), decisions, constraints, phases with tasks, acceptance criteria, a process log and evidence.

Rules:

  • Mirror the tasks into the session todo list and keep both in sync as you go.
  • Every acceptance criterion must be checkable (a command, a test, a measurable value, a screenshot).
  • Append to the process log at each meaningful step, one or two lines each: what changed, what you learned, what is next. Anyone must be able to resume from the file alone; it is a log, not a report.
  • Evidence is mandatory to tick a task: test output, a command result, a Lighthouse/axe number, or a screenshot path. "Should work" is not evidence.
  • Set status: in the frontmatter (active, blocked, done). The session-start hook surfaces active files.

4. Line budget: small houses, not Eiffel towers

Before implementing a slice, forecast its size in changed lines. The budget is ~400 changed lines per slice — the range where review stays effective.

  • Over budget: split into slices that each leave the codebase working and are independently reviewable. Each slice = one commit (or one PR on teams).
  • Work inside the budget as a constraint, not a suggestion: the best solution that fits, not the most impressive one. Exceeding it requires a one-line written justification in the feature file. When you cut scope to fit, mark each seam with a ponytail: note (sumi:code-quality) instead of half-building the extension.
  • Generated files, lockfiles and snapshots do not count.

5. Delegation briefs

Route by role (sumi:model-routing): facts → sumi:scout, decisions → sumi:architect, implementation → sumi:builder, passing the model for the project's profile on every call.

A subagent starts with zero context. Every brief contains: goal, exact files/paths, constraints and conventions that apply (name the skills), the acceptance check it must run, and the output you expect back (diff summary + evidence). Prefer one well-briefed subagent over several vague ones. Run independent subagents in parallel.

6. Pre-commit risk assessment

Before each commit, classify the change:

Risk Typical triggers Review
Low Copy, docs, styles isolated to one component, tests Self-check against the Done checklist
Medium New component or module, dependency or config changes, shared utilities, routing /sumi:review at the end of the slice (1–2 lenses)
High Auth, payments, permissions, data model or migrations, security rules, caching layers, anything irreversible /sumi:review with all relevant lenses before committing; ask the user before irreversible actions

Review per slice, not per micro-task — and never several slices at once: if a range exceeds ~1.5× the line budget, review it slice by slice (/sumi:review enforces this).

7. Shipping

  • Commits: Conventional Commits, imperative, English, one concern per commit.
  • If a feature exceeds one reviewable unit, plan chained PRs: each PR builds on the previous one and ends in a final tracker PR that merges to main; or, for small fast-moving work, each slice merges to main independently. Record the choice in the feature file.
  • Use /sumi:ship to run the final checks and draft the PR description.

Companions (installed as dependencies of sumi)

Sumitsubo owns the process (tiers, feature file, budgets, reviews). Companion skills are called at specific moments; they never replace the tier decision.

Moment Companion skill How Sumitsubo uses it
Any bug, failing test or unexpected behavior systematic-debugging (superpowers-debugging) Root cause before any fix; the fix is then a normal T0/T1 change with a regression test
Implementing logic with branches, or any bug fix test-driven-development (superpowers-tdd) Write the failing test first when the project has a test runner; the passing test is the task's evidence
Before ticking a task, closing a slice or saying "done" verification-before-completion (superpowers-verification) Run the checks and paste the evidence; aligns with "done means verified"
Parallel subagents or risky experiments using-git-worktrees (superpowers-worktrees) One worktree per parallel slice so agents don't collide
Processing lens findings from /sumi:review receiving-code-review (superpowers-review-intake) Verify each finding against the code before applying it; push back on wrong ones
Every change ponytail Minimal solution first; seams marked with ponytail: notes (see sumi:code-quality)

Deliberately NOT included from superpowers: its session bootstrap, brainstorming, writing/executing plans, subagent-driven development and branch finishing. Sumitsubo's tiers, feature file, /sumi:review and /sumi:ship cover those, and two competing workflows in one session degrade both.

Anti-patterns

  • Creating a feature file for a one-line fix, or skipping it for a migration.
  • Delegating before diagnosing (the subagent re-discovers everything, badly).
  • Asking the user things the codebase answers.
  • Ticking tasks without evidence; "done" with failing or unrun tests.
  • Scope creep: refactoring adjacent code nobody asked about. Note it under "Follow-ups" instead.