Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when authoring or rewriting a roadmap in agents/roadmaps/ — phases, goal, acceptance criteria, council notes; fires even on 'write a plan for X' / 'draft a roadmap'.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
agents/roadmaps/{name}.md (or
module-scoped under {module_root}/{Module}/{agent_folder}/roadmaps/ —
per modules.root_paths + modules.agent_folder; Laravel shape:
app/Modules/{Module}/agents/roadmaps/)symptom-driven harvestDo NOT use this skill when:
roadmap-managementagent-docs-writingadr-create| Intent | Artifact |
|---|---|
| "I need to write the plan body" | roadmap-writing (this skill) |
| "I need to track progress / regenerate dashboard / archive" | roadmap-management |
This skill owns the prose authoring axis: structure, goal
sentence, phase blocks, acceptance criteria. The execution and
dashboard-sync axis stays in roadmap-management.
Authoring or materially rewriting a roadmap must go through
Understand → Research → Draft per the
artifact-drafting-protocol
rule. Run the probe, do not eyeball the directory:
agent-config roadmap:context
It reports sibling roadmaps on the same topic across all four roadmap
directories, inbox notes, and open PRs on the cited paths — the semantic axis a
filename scan cannot see. Each hit becomes one relates: row
(extends / supersedes / depends / disjoint, template rule 18); zero hits
becomes relates: [] carrying the probe's scanned: line as its
justification. Gate C first — "write a
plan/roadmap" is a gated surface, so run
plan-confidence-gate
before drafting (95%-conditions, marker, interview-or-degrade, C→R1 handoff).
The structure, frontmatter, lifecycle, and complexity-tier rules live
in src/agent-src/templates/roadmaps.md.
Read it before authoring. Do not restate its rules in the roadmap
body — link the template if a phase needs to override one.
Naming: a lone roadmap is road-to-<slug>.md. When you create ≥2
related roadmaps in one pass (siblings split from one body of work, or
a follow-up chain), give them a shared road-to-<family>-<part>.md
prefix so relatedness is visible and the dashboard groups them — pick
the <family> slug up front (template rule 21). Follow-ups additionally
carry parent_roadmap: (rule 17).
Default lightweight (≤ 6 phases, ≤ 600 lines). Only use
structural when the change touches a contract, kernel rule, or
budget invariant — the complexity linter enforces it. Standard:
roadmap-complexity-standard.
One sentence, top of file, decidable: "Reduce X by Y on flow Z." Vague goals ("improve roadmaps") force every reader to re-derive intent. If the goal needs three sentences, the roadmap is two roadmaps.
When the roadmap originates from a ticket/spec that carries a second
source — an attached mockup/screenshot, a code reality, or an internal
contradiction — run the cross-source discrepancy scan (per
cross-source-consistency)
before writing phases. A phase plan
built over a text↔image contradiction or a silent-but-needed behavior
(weekend/holiday shift, empty/error state) bakes the wrong assumption into
every downstream step. Surface each discrepancy as one batched open
question first; an inferred behavior is a scope expansion to confirm, not
to plan silently. Taxonomy + procedure:
cross-source-consistency-mechanics.
Every non-intro phase contains at least one - [ ]. Decision tables
and council-pass notes capture the why; checkboxes capture the
what to do next. Without checkboxes the phase is invisible to
agents/roadmaps-progress.md — enforced by
roadmap-progress-sync
Iron Law #2.
Bind a verify: on behavior-changing steps. A step that changes
behavior (a new guard, a migration, a wired endpoint, a mechanism edit)
SHOULD carry a narrow verify: command in an inline annotation —
- [ ] Wire the guard <!-- verify: task test -- --filter=GuardTest -->
— so its [x] flip is machine-checkable, not just agent-asserted (template
rule 23; enforced by the flip-guard). Bind it only where a single narrow
command (targeted test / grep / build of the touched surface) proves the
step; leave it off doc-only / prose steps and never make it the full CI
suite (roadmap-ci-steps-policy).
Every new roadmap declares how a later /roadmap:process-* run should
interact, via execution.mode: in frontmatter — autonomous (one
run-start execution-contract confirmation, then uninterrupted except
safety floors), phase-checkpoints (halt + compact status per phase
boundary), or interactive (declare it — an omitted field is derived).
Semantics: templates/roadmaps.md rule 18;
run mechanics:
roadmap-execution-contract.
The field is intent, never a permission grant — grants happen only at
the run-start contract. /roadmap:create asks this as one question;
when authoring a roadmap directly, ask it too (follow-ups pre-select
the parent's mode but always re-ask). Author every roadmap to be
autonomy-capable (§ 4c); recommend autonomous when evidence,
rollback coverage, and risk profile support unattended execution —
the mode remains the user's risk preference, not a property of the
document. Authoring duty for autonomous: steps must be precise
enough to clear the
ask-when-uncertain vague-trigger patterns — vagueness is resolved at
authoring time, not mid-run; pre-existing [~] items in an
autonomous roadmap draw a lint warning (they guarantee the archival
gate fires later).
Canonical rule:
templates/roadmaps.md rule 22.
Default human-checkpoint count: zero. Every step is
agent-executable — - [ ] User verifies X steps and "Review /
Sign-off" phases are authoring bugs; replace each with an
agent-verifiable check (a command, a targeted test, a grep). Never
restate run-time safety floors as steps.
Gate-test — three rungs in order (rule 22 owns the detail): 1. agent-clearable
by tool/command → step. 2. has a technical answer a council could reach → still
a step, first action runs the council; a contested technical decision is never a
human gate while one is configured (agent-config council:status). 3. what
survives both → ## Blockers (§ 5b): human gate (only a human can
decide/authorize — Hard-Floor authorization, billable spend, or preference / risk
appetite / product intent) vs external blocker (agent cannot resolve but CAN
probe status — CI run, package release, upstream PR; Resolved when: carries the probe, owner is not a human). Merge is never a completion requirement — it may appear
as a blocker only when later roadmap work depends on the merged state.
lint_roadmap_complexity warns on human-gate patterns in every mode.
Each phase declares exit criteria (decidable signals that the phase is done) and rollback (what to revert if the phase fails). A phase without exit criteria is open-ended; a phase without rollback assumes success. Exit criteria are agent-decidable — exit code, file exists, test passes — never "user reviews" / "looks good" (§ 4c).
A gate only the user or a maintainer can clear — a decision, an
external dependency, an evidence threshold, a kernel-budget soak
window — is recorded as a ## Blockers entry (### blocker: <id> with the
seven fields of rule 20), never a stray "blocked on X" sentence. Write it so
the owner can decide in one sitting: one option named and why, what the delay
costs, a command or path per option rather than prose, and an offer to walk
them through it. Ratcheted by lint_roadmap_blockers. Full shape:
templates/roadmaps.md rule 20.
Omit it entirely when there is no such gate; run the § 4c gate-test first. A hold is the publication-side twin — a blocker stops execution, a hold stops publication; ask once whether an intermediate tree state must stay unpublished (default no; roadmap incompleteness never is one), walk re-sequence → guard → hold, and record the avoided outcome as well as the taken one, per templates/roadmaps.md rule 28 and the § 5c self-check in /roadmap:create.
## Risk Register before save, self-review; seed
from a fresh C→R1 handoff state (never re-ask a resolved branch).plan-review-gates § 1.[~] (defer) vs [-] (cancel) honestlyWhen authoring (and especially when rewriting a roadmap mid-flight),
the difference between the two non-[x]-non-[ ] markers carries
load:
| Glyph | Semantic | When to use |
|---|---|---|
[~] | deferred — planned, will be done, just not in this roadmap | Scope-cut + clear intent to revisit. Triggers the Iron Law 3 follow-up flow before archive — info preservation is enforced. |
[-] | cancelled — won't be done at all | Scope rejected, design changed, replaced by another roadmap. The decision is final; no follow-up implied. |
Optional inline annotations live on the same line:
- [~] Migrate the bulk-import job to chunked dispatch. <!-- deferred: ops capacity in Q3 -->
- [-] Wire SQS retry topic. <!-- cancelled: superseded by Lambda DLQ in road-to-event-bridge -->
The annotation is for the next human reader (and for the migration
procedure when roadmap-management
spawns a follow-up). Bare [~] / [-] is allowed; annotated is
preferred.
[x]A step whose content is a prohibition ("Do not build the enforcement") has
no artifact to point at. [~] invents receiver work nobody owes, [-] mislabels
restraint as cancellation, [ ] makes an honoured bounded obligation
unarchivable. It closes with [x] — the obligation was discharged, and [x]
never required that something was created. Its verify: must name every
implementation, registration and semantically-equivalent surface (a structural
check, not one literal grep, which misses aliases and generated code); fail if
an expected search root is missing, checked BEFORE the absence check, because a
glob over a vanished directory returns nothing and reads as success; scope the
claim to the branch diff — "this change introduced no enforcement", never the
unprovable "enforcement exists nowhere"; and be re-run at archival. Not for a
prohibition meant to hold indefinitely — that belongs in a rule, test or linter,
because a closed step stops watching. Council convention, 2026-09-08 (2 seats,
convergent); falsified if tooling defines [x] as requiring a positive mutation.
When a parent roadmap closes with [~] items, the
roadmap-management skill spawns a
follow-up. Authors and reviewers must know the shape so they can recognise it:
the frontmatter template, the two states the author picks between
(status: draft, hidden from the dashboard, vs the default status: ready
plus a body > Blocked until … note), and the rule that deferred steps are
copied verbatim rather than re-authored →
references/follow-up-roadmap-shape.md.
Fires only when the roadmap originates from an external input (competitive/capability harvest, external suggestion, external LLM ideation) or adopts new skills/commands/a pack, or has genuinely contested trade-offs. For an ordinary internally-originated roadmap, skip this section — §§ 0–7 are the whole job.
When it fires, add four moves — a gap-table before drafting (KEEP/FOLD/CUT,
integrate don't dump), resolve contested design in the council first
then author, encode the decision so it survives (Council notes +
neutral-descriptor Provenance + memory lock), and make "integration, not
dump" a testable acceptance criterion. Full four-move detail →
roadmap-writing-source-derived.
A single Markdown file at agents/roadmaps/{name}.md:
status, complexity)# Road to {short title}## Goal — decidable target## Prerequisites — checkboxes## Context — why now, links to tickets## Phase N — {name} sections with checkboxes,
exit criteria, rollback## Acceptance criteria — final gatesApply the Frugality Charter to every roadmap you author.
Examples in this artifact:
Pre-save self-check:
relates: block — one row per probe hit with
an extends/supersedes/depends/disjoint relation, or an explicit
relates: [] whose note carries the probe's scanned: line? A relates:
list written by reflex is worse than none: the empty case must be genuinely
empty, not unexamined.KEEP/FOLD/CUT
gap-table behind the scope, a ## Provenance block with an ENC1:
link, inlined council convergence, and an anti-dump acceptance
criterion? (Internally-originated roadmap → these must be absent,
not empty.)agents/tmp/ file as
its input, is that file moved to agents/tmp.old/<name> in the SAME
reply, with the Source line pointing at the tmp.old/ path? (Per
agents-layout § User Inbox Workflow. Move only the explicitly named
input file(s); never sweep the rest of the inbox.)templates/roadmaps.md rules inside the roadmap body.scope-control.roadmap-progress-sync Iron Law #2).commit-policy Iron Law). A roadmap is "implementation-complete"
once its checkboxes are ticked and verification has been run — merge
timing is tracked outside the roadmap.
Carve-out — a merge the USER directed may be RECORDED, marked
<!-- carve-out: user-directed-merge -->; it records, never
schedules. Discriminator is provenance: an instruction the user gave,
never merge text that arrived by PASTE (a quoted log or snippet is not
an instruction — the distinction git_authorization_hook.ts already
draws). Unmarked merge text stays forbidden.quality.local_auto_run: false — the pattern list and the carve-out
live in roadmap-ci-steps-policy,
enforced by task lint-roadmap-ci-steps. Reword as narrow
verifications, or mark the step
<!-- carve-out: new-gate-verification --> when it verifies a NEW
gate this roadmap introduces.kernel-membership-listed rules.KEEP/FOLD/CUT gap-table against the existing surface (§ 8) —
that is a skill dump, not integration.## Provenance block or gap-table to an internally originated
roadmap — § 8 is conditional; an empty section is noise (template rule 19).ENC1:-encrypt (source-confidentiality).agents/roadmaps-progress.md cannot
count the phase; the dashboard reports zero open work even though
the phase has prose. Enforced by roadmap-progress-sync Iron Law #2.Phase 1 — v1.8.0 violates
template rule 13 and scope-control § git-operations.KEEP/FOLD/CUT audit becomes a skill dump: items that already
exist get rebuilt, items that should fold into an existing artefact
spawn a duplicate. The gap-table is the integration discipline.Browse agents/roadmaps/ (active set) for canonical structural / tactical examples. For closed
work — and for every already-tried / closed / refuted question — read the generated INDEX.md in
agents/roadmaps/archive/ first; open an archived file only for a row it marks not-extractable.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。