From building-in-the-open
Creates and maintains MADR-format Architectural Decision Records with explicit trade-offs, considered alternatives, and consequence analysis. Use when a technical decision has been made, after brainstorming converges on an approach, when writing an ADR or architecture decision record, or when an implicit decision should be captured explicitly.
npx claudepluginhub claylo/building-in-the-open --plugin building-in-the-openThis skill is limited to using the following tools:
**Announce at start:** "I'm using the capturing-decisions skill with the Technical Writer persona to record this decision."
Implements Playwright E2E testing patterns: Page Object Model, test organization, configuration, reporters, artifacts, and CI/CD integration for stable suites.
Guides Next.js 16+ Turbopack for faster dev via incremental bundling, FS caching, and HMR; covers webpack comparison, bundle analysis, and production builds.
Discovers and evaluates Laravel packages via LaraPlugins.io MCP. Searches by keyword/feature, filters by health score, Laravel/PHP compatibility; fetches details, metrics, and version history.
Announce at start: "I'm using the capturing-decisions skill with the Technical Writer persona to record this decision."
This skill creates (and keeps tidy) Architectural Decision Records (ADRs) using MADR (Markdown Architectural Decision Records) v4.0.0.
A helpful bar for what "counts" as an architectural decision is Martin Fowler's: "a decision you wish you could get right early." ("Who needs an architect?", IEEE Software, 2003)
Primary reference: Markdown Architectural Decision Records
Injected at skill load time — use this to determine the next sequence number.
!ls "${CLAUDE_PLUGIN_OPTION_DOC_OUTPUT_DIR:-record}"/decisions/[0-9]*.md 2>/dev/null || ls docs/decisions/[0-9]*.md 2>/dev/null || echo "(no existing ADRs found)"
All ADRs live in:
{PROJECT_ROOT}/${user_config.doc_output_dir}/decisions/NNNN-title-with-dashes.md (defaults to record/ if not configured)Where:
NNNN is a zero-padded 4-digit sequence number (0001, 0002, ...)title-with-dashes is a lowercase slug (letters/digits/hyphens)If {PROJECT_ROOT}/${user_config.doc_output_dir}/decisions/ does not exist yet, create it.
Use the ADR template from ${CLAUDE_PLUGIN_ROOT}/templates/adr.md.
Create new ADRs by copying the template and replacing placeholders. Optional sections may be removed (the template marks them clearly).
Each ADR must include YAML front matter at the top with:
status: one of proposed, accepted, rejected, deprecated, or superseded by ADR-NNNNdate: YYYY-MM-DD (update when the ADR is materially changed)Maintain an index at {PROJECT_ROOT}/${user_config.doc_output_dir}/decisions/README.md that lists all ADRs with:
Use this mapping:
{PROJECT_ROOT}/${user_config.doc_output_dir}/decisions/ and incrementing the highest NNNN. Start at 0001 if none exist.title-with-dashes (lowercase, hyphens, no punctuation).${CLAUDE_PLUGIN_ROOT}/personas/technical-writer.md.BITO_DIALECT environment variable or the project's bito config for a dialect preference (en-us, en-gb, en-ca, en-au). If set, use that dialect's spelling conventions consistently throughout the draft. If not set, default to en-US.${CLAUDE_PLUGIN_ROOT}/templates/adr.md.
status to proposed unless the change set includes implementation and agreement to accept.NNNN: [Problem solved and solution chosen]. Good: "0007: Pluggable tokenizer backends for handoff budget enforcement." Bad: "0007: Token counting decision."${user_config.doc_output_dir}/decisions/README.md:
status.superseded by ADR-NNNN, and update the index row emoji.writing-design-docs produce decisions that this skill captureswriting-design-docs — if a design doc contains discrete decisions, they should be extracted into ADRs and referenced from the design docsuperseded by ADR-NNNN and write a new ADR explaining what changed.