decision-capture

0
0
Source

Capture patine (decision wisdom) at Gates when KO or challenge occurs

Install

mkdir -p .claude/skills/decision-capture && curl -L -o skill.zip "https://mcp.directory/api/skills/download/5103" && unzip -o skill.zip -d .claude/skills/decision-capture && rm skill.zip

Installs to .claude/skills/decision-capture

About this skill

Decision Capture Skill

Lightweight skill for capturing the "patine" - the accumulated wisdom of why decisions were made and alternatives rejected. Triggered at Gates when human provides KO or challenges a proposal.

When to Use

  • At any Gate when human provides KO
  • When human challenges or rejects a proposal
  • When debug skill finds a pattern worth remembering
  • When significant technical decision is made

Trigger Conditions

TriggerContextType
Gate 1 KOWireframe rejectedDecision
Gate 2 KOScope option rejectedDecision
Gate 3 KO/BLOCKPhasing challengedDecision
Gate 4 KOTechnical approach rejectedDecision
Gate 5 ChangesPR review feedbackDecision
Debug PatternRecurring issue foundKaizen
DIG 3+ timesSame wireframe refined repeatedlyKaizen
Same error fixed 2+ timesFix pattern emergedKaizen
User corrects assumptionAI was wrong about somethingHansei
Takt warning exceededPhase took longer than targetHansei
Jidoka Tier 2/3Escalation to human requiredHansei

Phase 1: Detect Decision Type

Categorize the decision:

TypeSignalExample
TechnicalCode, architecture, library"Don't use GraphQL subscriptions"
UXInteraction, visual, flow"Sidebar navigation, not top nav"
ProcessWorkflow, phasing, priority"Ship auth before tables"

Phase 2: Prompt for Rationale

Ask for brief rationale (keep it light):

I'll note this decision for future reference.

**In one sentence, why this decision?**

Examples:
- "We tried X in 2024, broke production"
- "Users missed this in testing"
- "Conflicts with our caching strategy"

(Press Enter to skip if you prefer not to explain)

If human declines: Record decision without rationale (still valuable).

Phase 3: Attribute

Capture metadata:

FieldSource
WhoCurrent user (from context)
WhenCurrent date
DomainFrom branch name or changed files
GateWhich Gate triggered capture
Related TaskNotion task ID if available

Phase 4: Store

Layer 1: Notion (Default - Always)

Use Notion MCP to create record:

API-create-page:
  parent: { database_id: "[DECISION_PATINE_DB_ID]" }
  properties:
    Title: { title: [{ text: { content: "[Decision summary]" }}]}
    Domain: { select: { name: "[domain]" }}
    Type: { select: { name: "[Technical/UX/Process]" }}
    Decision: { rich_text: [{ text: { content: "[What we decided]" }}]}
    Rationale: { rich_text: [{ text: { content: "[Why]" }}]}
    Rejected: { rich_text: [{ text: { content: "[What we didn't do and why]" }}]}
    Impact: { select: { name: "[Low/Medium/High]" }}
    Gate: { select: { name: "[Gate 1/2/3/4/5/Debug]" }}

Layer 2: ADR File (If High Impact)

If Impact = High or Type = Technical with cross-domain effect:

  1. Get next ADR number: ls docs/decisions/ | wc -l
  2. Create file: /docs/decisions/NNN-[slug].md
  3. Use ADR template

ADR Template:

# ADR-[NNN]: [Title]

**Date**: [YYYY-MM-DD]
**Status**: Accepted
**Domain**: [domain]
**Captured at**: Gate [N]

## Context

[1-2 sentences: What problem were we solving?]

## Decision

[What we chose to do]

## Rationale

[Why this approach - the positive case]

## Rejected Alternatives

### [Alternative Name]
**Why not**: [Reason]

## Consequences

- [Trade-off 1]
- [Trade-off 2]

## References

- Notion: [link to Decision Patine record]
- Task: [link to related task if applicable]

Layer 3: Inline Comment (If Micro/Code-Specific)

For small code-level decisions during implementation:

// ADR: [Brief decision]. [Why not alternative]. —@[initials] [YYYY-MM]

Example:

// ADR: No useMemo here - profiling showed <1ms gain, adds complexity. —@mc 2026-01

Phase 5: Confirm

Output confirmation:

**Noted:** [Decision summary]

Stored in Decision Patine database.
[If ADR created: Created ADR-[NNN] in /docs/decisions/]

Continuing with workflow...

Kaizen/Hansei Capture (NEW)

Automatic learning capture without user prompts. These triggers capture patterns and reflections silently.

Automatic Triggers

These captures happen automatically without prompting user:

Kaizen (pattern emerged):

  • Wireframe DIG'd 3+ times → Capture the pattern that emerged
  • Same error fixed 2+ times → Capture the fix pattern
  • Repeated code pattern → Capture abstraction opportunity

Hansei (reflection):

  • User corrects AI assumption → Capture what was wrong
  • Phase exceeded takt warning → Capture why it took longer
  • Jidoka escalation → Capture what blocked progress

Kaizen Format

Type: KAIZEN
Source: [Phase] [Loop/Commit]
Learning: "[What pattern emerged]"
Category: [UX_PATTERN | TECHNICAL | PROCESS]
Impact: LOW | MEDIUM | HIGH

Example:

Type: KAIZEN
Source: DIVERGE Loop 3
Learning: "Invite modals benefit from email preview side panel"
Category: UX_PATTERN
Impact: MEDIUM

Hansei Format

Type: HANSEI
Source: [Phase] [Loop/Commit]
Learning: "[What we learned from the mistake/delay]"
Category: [ASSUMPTION | COMPLEXITY | PROCESS]
Impact: LOW | MEDIUM | HIGH

Example:

Type: HANSEI
Source: CONVERGE
Learning: "Original scope too ambitious - exceeded 40min takt warning"
Category: COMPLEXITY
Impact: LOW

Silent Capture Rules

  • Do NOT prompt user for rationale on Kaizen/Hansei triggers
  • Capture automatically based on observed patterns
  • Include in session-journal sync at end of session
  • Only HIGH impact Kaizen/Hansei create immediate ADR files

Session Aggregation

Instead of immediately creating Notion entries for each:

  1. Collect Kaizen/Hansei entries in memory during session
  2. Aggregate in session-journal sync at end (Phase 5 of notion-sync)
  3. Only HIGH impact items create immediate ADR files

Querying Patine

Before proposing new patterns, query existing decisions:

API-query-database:
  database_id: "[DECISION_PATINE_DB_ID]"
  filter:
    property: "Domain"
    select:
      equals: "[current domain]"

Use results to:

  1. Avoid re-proposing rejected alternatives
  2. Understand existing constraints
  3. Reference past decisions in new proposals

Anti-Patterns

DON'T:

  • Require rationale for every micro-decision
  • Create ADR files for non-architectural choices
  • Capture decisions that are already in code comments
  • Ask "why" more than once if human declines

DO:

  • Capture at the moment of friction (KO, challenge)
  • Accept "we tried this before, it failed" as valid rationale
  • Keep entries scannable (1-2 sentences)
  • Link to evidence when available (PRs, issues, metrics)

Integration

This skill is invoked by:

  • ask.mdc - Gates 1, 2, 3 on KO
  • plan.mdc - Gate 4 on option rejection
  • push-pr.mdc - Gate 5 on changes requested
  • debug - When pattern worth remembering is found

Notion Database Schema

Database: Decision Patine

PropertyTypeRequired
TitleTitleYes
DomainSelectYes
TypeSelectYes
DecisionRich TextYes
RationaleRich TextNo
RejectedRich TextNo
Challenged ByPersonNo
DateDateYes
ImpactSelectYes
GateSelectNo
Related TaskRelationNo
ADR FileURLNo

Invocation

Invoked automatically at Gates on KO, or manually with "use decision-capture skill".

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

643969

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

591705

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

318398

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

339397

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

451339

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

304231

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.