write-adr
Propose and draft a new Architecture Decision Record (ADR) in MADR format for Tyrne.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Propose and draft a new Architecture Decision Record (ADR) in MADR format for Tyrne.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Add a new Board Support Package (BSP) crate to the Tyrne workspace — from crate skeleton through boot checklist to first QEMU or hardware boot.
Run an independent verification pass over artefacts in `Proposed` / `In Review` waiting-for-promotion states. Distinct from code-review (style + correctness on a diff) and security-review (adversarial axis pass) — this skill verifies that the artefacts' claims about their own state match reality and produces a Done-promotion verdict.
Produce a review artifact in `docs/analysis/reviews/<type>-reviews/`, following that type's master plan. Works for business / code / security / performance-optimization reviews.
Change an existing Tyrne standard correctly — write or update the motivating ADR first, then update the standard file.
Add a new Rust crate to the Tyrne workspace following the dependency policy in `infrastructure.md`.
Introduce or audit an `unsafe` region in Tyrne — writing the `SAFETY:` comment, adding the audit-log entry, and queuing security review.
| name | write-adr |
| description | Propose and draft a new Architecture Decision Record (ADR) in MADR format for Tyrne. |
| when-to-use | When a non-trivial architectural, security, platform, or process decision is being made, or when a change depends on a decision that has not yet been recorded. |
Before starting, the agent must have:
kernel-allocator, log-wire-format).Determine the next ADR number.
docs/decisions/ matching NNNN-*.md.Create the file at docs/decisions/NNNN-<slug>.md.
Copy the shape from docs/decisions/template.md. Do not skip sections.
Fill the header:
Status: Proposed (or Accepted if the decision is being recorded after the fact, with agreement from the maintainer — this is the retroactive-recovery exception; see anti-pattern 5 and the acceptance-criterion note below for how it reconciles with the "Accept is never in the same commit as the initial draft" rule. A retroactive ADR is a recovery move and must be marked explicitly in §Context.).Date: today's date in ISO-8601 (YYYY-MM-DD).Deciders: @cemililik (add others if applicable).Fill the body:
(state-pre, action, state-post, switch target / observable effect). Required for ADRs whose subject is a state machine: capability flows (cap_copy / cap_derive / cap_revoke), IPC handshakes (send / recv / notify), scheduler dispatch (yield_now / start / IPC bridge), exception / IRQ entry, MMU / TLB transitions, syscall ABI handshakes. Omitted with a one-line "Not applicable — this ADR settles a single-shape decision" note for process / governance / dependency-policy / single-decision ADRs. Codified after ADR-0026's table caught what ADR-0022's prose-only reasoning had missed; the 2026-05-07 B1 closure retro §"What we learned" is the source.unsafe-touching step (or both, for transitions whose verification spans both layers). The implementing task's review-history row records this mapping explicitly — for example row 0 → wrap_bootstrap_returns_address_space_with_root host test; row 3 → yield_now_activates_when_tasks_differ_in_address_space + UNSAFE-2026-0014 5th Amendment. Rationale: prose-only ADR review cannot catch off-by-one transition errors; pairing every row with executable / audited verification forces the implementer to discharge each simulated state-change with a concrete artefact and surfaces gaps before merge. The pattern is stable at four data points — ADR-0026 row → T-014's unblock_after_yield_dispatches_unblocked_receiver_not_idle test; ADR-0032 rows → T-015's ipc_cancel_recv regression tests + UNSAFE-2026-0014 4th Amendment; ADR-0027 rows → T-016's vmsav8 encoder host tests + UNSAFE-2026-0022 / 0023 / 0024 / 0025 audit entries; ADR-0028 rows → T-018's address_space::tests + UNSAFE-2026-0014 5th Amendment. The codification was deferred for two closure trios (B2 → B3) before the B3 closure retro §Adjustments re-triggered it.Check for contradictions with prior ADRs.
Update the ADR index at docs/decisions/README.md:
| NNNN | [Title](NNNN-slug.md) | Proposed | YYYY-MM-DD |.Cross-link the new ADR from any standard or architecture document that motivated it.
Commit per commit-style.md:
docs(adr): propose ADR-NNNN — <short title>.Refs: ADR-NNNN.Careful re-read before Accept. The ADR lands at status Proposed. Before flipping to Accepted, re-read the ADR end-to-end — out loud or in a fresh editor pane — paying particular attention to: (a) every forward-reference points at a real T-NNN (per ADR-0025 §Rule 1); (b) the dependency chain is complete and each step's slot exists; (c) the Negative consequences are real costs the project is willing to pay, not hand-waved mitigations. An earlier draft of ADR-0025 imposed a hard 24-hour cool-down between Proposed and Accepted — that rule was withdrawn before Accept on maintainer judgement that the substance (deliberate re-reading) is achievable through this step plus independent agent reviews, without a calendar delay (see ADR-0025 §Revision notes). Same-day Accept is therefore permitted, provided this re-read step actually happens; if the re-read surfaces a gap, fix it and re-read again before flipping the status. Accept is a separate commit from the initial Propose commit so that the careful-re-read pass shows up as its own diff.
docs/decisions/NNNN-<slug>.md.<angle-bracket> placeholders from the template).docs/decisions/README.md has the new row.Proposed. The Propose commit is separate from any subsequent Accept commit so the careful-re-read pass shows up as its own diff. Accept may follow same-day after the re-read of step 10 (no calendar gate per ADR-0025 §Revision notes), but never in the same commit as the initial draft.<Option A> in the pros-and-cons section is a failed review.Proposed → Accepted in the same diff as the initial draft (or without a real second pass) is the failure mode that ADR-0025's withdrawn cool-down rule was originally trying to prevent — the rule was withdrawn, the discipline was not.Draft. (Per ADR-0025 §Rule 1.)