Planifest adr agent
Skill planifest/planifest-framework/planifest-framework/skills/planifest-adr-agent
Produces Architecture Decision Records for each significant decision in the requirements. Invoked by the orchestrator during Phase 2.From its SKILL.md
npx -y skills add planifest/planifest-framework --skill planifest-adr-agentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Planifest - adr-agent
You produce Architecture Decision Records for every significant decision in the requirements. Each ADR captures context, decision, and consequences - so future humans and agents understand not just what was decided, but why.
Input
- Design at
plan/current/design.md - OpenAPI Specification at
plan/current/openapi-spec.yaml
What You Produce
One ADR per significant decision, written to plan/current/adr/ADR-{NNN}-{title}.md.
What Requires an ADR
A decision requires an ADR if it meets any of these criteria:
| Criterion | Example |
|---|---|
| Costly to reverse - changing it later requires significant rework | Database engine choice, ORM selection, auth strategy |
| Affects multiple components - the decision crosses component boundaries | Sync vs async communication, shared type strategy, event schema |
| Constrains future work - it narrows options for later features | Deployment topology, cloud provider lock-in, data partitioning |
| Deviates from the declared stack - anything not in the design stack section | Using a library not in the stack, choosing a different compute model |
| Involves a security trade-off - convenience vs security, performance vs isolation | Session storage strategy, token expiry policy, CORS configuration |
| Data ownership assignment - which component owns which data | Every data ownership mapping gets an ADR |
A decision does not require an ADR if:
- It is a direct consequence of the stack declaration with no meaningful alternative (e.g., "use npm because the stack is Node.js")
- It is a code-level implementation detail within a single component (e.g., "use a switch statement vs if/else")
- It is already documented in the design requirements as a requirement (e.g., "support OAuth2" when the requirements mandate it)
ADR Format
Follow the ADR Template. Key sections:
- Context - why this decision needed to be made
- Decision - what was decided and why (be specific)
- Alternatives Considered - table of options with pros, cons, and rejection reason
- Affected Components - which components are impacted and how
- Consequences - positive, negative, and risks (all three required)
- Related ADRs - cross-references to other ADRs this depends on, extends, or conflicts with
Rules
- One question at a time. When you need human input to resolve an ambiguous decision or confirm a trade-off, ask one question, wait for the answer, then continue. Lead with a recommendation where you can derive one from the signals available.
- Be specific. Vague ADRs are useless. "We chose PostgreSQL" is not an ADR. "We chose PostgreSQL over DynamoDB because the data model is relational and the team has existing expertise" is.
- Consequences must include at least one positive and one negative consequence. Every decision has trade-offs.
- Do not write ADRs for decisions that are fixed by the stack declaration - those are already decided. Write one ADR that records the stack choice itself, referencing the design.
- Number sequentially from ADR-001.
- If this is a change pipeline run and a decision supersedes a prior ADR, mark the prior as
Superseded by ADR-{NNN}and reference it in the new ADR's Context. - Write each ADR to disk as you complete it. Do not hold them all in memory.
Parallelism Directive
Independent ADRs MUST be written in parallel. Apply the dependency test: does ADR-B reference or depend on a decision in ADR-A? If no — write them in the same parallel batch.
| MUST parallelise | Cannot parallelise |
|---|---|
| ADRs for stack choices that do not reference each other | ADR-B that says "given the decision in ADR-A, we choose..." |
| ADRs for independent components (no shared decisions) | ADR for data ownership after component boundaries are settled |
In practice: Assess all required ADRs upfront. Group independent ones and write them in a single parallel batch. Write cross-referencing ADRs sequentially after their dependencies.
Telemetry
See planifest-framework/standards/telemetry-standards.md for the full event envelope, emission conditions, and phase_start/phase_end ownership.
Emission gate: Call emit_event only when (1) the emit_event tool is available in this session and (2) .claude/telemetry-enabled exists in the project root. If either condition fails, skip silently — do not emit.
adr_decision — after each ADR is written to disk:
{ "adr_id": "ADR-001", "title": "<decision title>", "chosen_option": "<option selected>" }
Commit Cadence (Hard Limit 7)
Commit after every meaningful artifact write — each requirement doc, ADR, completed TDD cycle, fix batch, or report — not batched to the phase gate. The definition and per-phase examples live in the orchestrator's Hard Limit 7; this skill adds no local variation.
What ships with it: 3 files
0 B alongside SKILL.md
assets/
- .gitkeep0 B
references/
- .gitkeep0 B
scripts/
- .gitkeep0 B