autonomous-loop
Iterate until success or limit, composing existing skills with Jidoka integration
Capture patine (decision wisdom) at Gates when KO or challenge occurs
$ npx -y skills add WellApp-ai/Well --skill decision-capture --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/decision-captureContext preview
The summary Claude sees to decide when to auto-load this skill.
Capture patine (decision wisdom) at Gates when KO or challenge occurs
name: decision-capture description: Capture patine (decision wisdom) at Gates when KO or challenge occurs
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.
| Trigger | Context | Type | |---------|---------|------| | Gate 1 KO | Wireframe rejected | Decision | | Gate 2 KO | Scope option rejected | Decision | | Gate 3 KO/BLOCK | Phasing challenged | Decision | | Gate 4 KO | Technical approach rejected | Decision | | Gate 5 Changes | PR review feedback | Decision | | Debug Pattern | Recurring issue found | Kaizen | | DIG 3+ times | Same wireframe refined repeatedly | Kaizen | | Same error fixed 2+ times | Fix pattern emerged | Kaizen | | User corrects assumption | AI was wrong about something | Hansei | | Takt warning exceeded | Phase took longer than target | Hansei | | Jidoka Tier 2/3 | Escalation to human required | Hansei |
Categorize the decision:
| Type | Signal | Example | |------|--------|---------| | Technical | Code, architecture, library | "Don't use GraphQL subscriptions" | | UX | Interaction, visual, flow | "Sidebar navigation, not top nav" | | Process | Workflow, phasing, priority | "Ship auth before tables" |
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).
Capture metadata:
| Field | Source | |-------|--------| | Who | Current user (from context) | | When | Current date | | Domain | From branch name or changed files | | Gate | Which Gate triggered capture | | Related Task | Notion task ID if available |
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]" }}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]
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
Output confirmation:
**Noted:** [Decision summary] Stored in Decision Patine database. [If ADR created: Created ADR-[NNN] in /docs/decisions/] Continuing with workflow...
---
Automatic learning capture without user prompts. These triggers capture patterns and reflections silently.
These captures happen automatically without prompting user:
**Kaizen (pattern emerged):**
**Hansei (reflection):**
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
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
Instead of immediately creating Notion entries for each: 1. Collect Kaizen/Hansei entries in memory during session 2. Aggregate in sessi
Iterate until success or limit, composing existing skills with Jidoka integration
Generate and maintain BPMN 2.0 diagrams linked to Gherkin scenarios
Research best-in-class products using Browser MCP and WebSearch
Systematic debugging with MCP integration, auto-invoke from qa-commit, Phase 7 Harden