一键导入
decision-extraction
// Identify and formalize durable product and technical decisions from agent outputs into long-term memory. Activate after Discovery produces artefacts, Delivery resolves trade-offs, or product direction materially changes.
// Identify and formalize durable product and technical decisions from agent outputs into long-term memory. Activate after Discovery produces artefacts, Delivery resolves trade-offs, or product direction materially changes.
Compact verbose memory index / registry files to pointer-only form. Activate when an index file (index.md, index-decisions.md, or any sibling registry table) breaches the file-size budget OR shows substance-duplication drift. Distinct from memory-compact (which targets content categories) and memory-archive-superseded (which migrates superseded rows to archive).
Detect and heal index.md drift — finds memory files on disk not registered in index.md and registers them. Run when /gaai-status reports unregistered files, after batch memory operations, or as a post-delivery gate.
Takes surface scan results, optional LLM synthesis open-question entries, and optional tree-sitter AST signals to score project ambiguities (1-10). Outputs structured ambiguity_feed for smart-question-generator. Pure heuristic — no LLM calls. Designed for Stage 3.5 of the /gaai:bootstrap pipeline (between LLM synthesis and Q&A).
Construct the LLM synthesis prompt from project surface scan + optional tree-sitter context + optional Q&A answers. Call the LLM. Parse and validate the response into 6-8 structured memory entries with clarity tags and source traceability. Used as Stage 3 of the /gaai:bootstrap pipeline.
Write structured memory entries to the Cloud workspace via gaai_memory.store MCP tool with source='bootstrap'. Loops over entries from bootstrap-llm-synthesis, calls the tool per entry, collects success/fail counts. Used as Stage 5 of the /gaai:bootstrap pipeline (Cloud path only).
Maintain a canonical i18n glossary file — sync new terms across all language pairs, detect drift, flag missing translations, and enforce consistent terminology across the codebase.
| name | decision-extraction |
| description | Identify and formalize durable product and technical decisions from agent outputs into long-term memory. Activate after Discovery produces artefacts, Delivery resolves trade-offs, or product direction materially changes. |
| license | ELv2 |
| compatibility | Works with any filesystem-based AI coding agent |
| metadata | {"author":"gaai-framework","version":"1.0","category":"cross","track":"cross-cutting","id":"SKILL-DECISION-EXTRACTION-001","updated_at":"2026-04-05T00:00:00.000Z","status":"stable"} |
| inputs | [{"recent_agent_outputs":"session outputs from the invoking agent, or file paths to artefacts produced in the current session (e.g., evaluation reports, refined stories, approach-evaluation outputs)"},"contexts/artefacts/** (governed)"] |
| outputs | ["contexts/memory/decisions/DEC-{N}.md (individual ADR file)","contexts/memory/decisions/_log.md (next ID updated)","contexts/memory/index.md (registry + file count updated)"] |
Activate after:
Do NOT use for trivial steps, implementation details, brainstorming, or reversible micro-choices.
Decision Consistency Gate (mandatory). Before extracting any new decision:
contexts/memory/index.md → scan the Decision Registry by domain to identify relevant existing decisionsdecisions/DEC-{ID}.md files for decisions in the affected domain(s)superseded_by in old file + supersedes in new file) with rationale, or STOP and escalate to human.
When escalating due to contradiction: before surfacing the escalation, grep
contexts/ for all occurrences of DEC-{id} (where {id} is the contradicted decision's
ID). Collect every file path that references the contradicted DEC — memory files, stories,
and architecture docs. Present this impact list alongside the escalation message so the human
can assess scope before deciding.
If the contexts/ directory scan fails: proceed with the escalation without the impact
list — the escalation is more important than the impact details.Scan outputs for explicit or implicit decisions: architectural choices, accepted trade-offs, scope boundaries, prioritization shifts, constraints introduced
Filter strictly for durable, governance-relevant decisions
Deduplication check: Scan the Decision Registry in index.md for existing entries covering the same topic. If found: (a) if the new decision supersedes the old, update the old DEC-{ID}.md file's frontmatter (status: superseded, superseded_by: DEC-{new-id}) and record the supersession in the new entry's supersedes field; (b) if the new decision confirms the old, skip writing a duplicate.
3b. Cross-reference assignment: For the new decision, populate related_to with up to 5 DEC IDs that are directly related (same domain cluster, supersession chain, or shared concern). Only include decisions the new entry explicitly builds on, refines, or constrains. If no strong relation exists, leave as [].
Convert each into a structured ADR file (see Output Format below):
Classify using the 10 canonical domains: architecture, matching, expert-system, billing, booking, infrastructure, strategy, governance, market, content. And 3 levels: strategic (WHAT/WHY), architectural (HOW), operational (PROCESS).
Get next available ID from decisions/_log.md → write decisions/DEC-{N}.md
Update _log.md: increment next available ID, add one-line entry for the new decision
MANDATORY GATE — Update Decision Registry (index.md or sibling index-decisions.md if extracted): Add one row per new decision. Row form is pointer-only (per memory-index-compact skill, SKILL-MEMORY-INDEX-COMPACT-001): | DEC-{N} | {domain} | {level} | {≤30-word topic + key relations e.g. amends/supersedes} | {status} {YYYY-MM-DD} |. HARD CAP : ≤ 200 chars per row. Forbidden in row : Tier 2 cycle trails (F-counts, REFINE narratives), commit SHAs, §-numbered substance dumps duplicating DEC body, validation ceremony prose, drift-heal forensic prose — these live in _log.md and the DEC body, NOT in the registry. Increment file count in Shared Categories table. Verify: re-read the row + count its chars ; if > 200 chars, compact before completing. Blocking gate — do not output success until confirmed.
Summary range check: Read the Summaries section of index.md. If the new DEC ID exceeds the highest DEC covered by the latest summary file (e.g., summary covers 90–155 but new DEC is 156), append a line to decisions/_log.md: # ⚠️ PENDING: extend summary range to DEC-{new-max-id} — run memory-refresh. This signals the next memory-refresh cycle to extend the summary. Do NOT create a new summary mid-delivery.
Each decision is an individual ADR file: decisions/DEC-{N}.md (sequential numeric ID).
---
id: DEC-{N}
domain: architecture | matching | expert-system | billing | booking | infrastructure | strategy | governance | market | content
level: strategic | architectural | operational
title: "Decision Title"
status: active
created_by: discovery
created_at: YYYY-MM-DD
last_updated_by: discovery
last_updated_at: YYYY-MM-DD
supersedes: null # or DEC-{old-id} if replacing
superseded_by: null
tags:
- {relevant tags}
related_to: [] # optional — max 5 DEC IDs
---
# DEC-{N} — Decision Title
## Context
...
## Decision
...
## Impact
...
This skill must NOT:
If future agents benefit from knowing it → extract it. If not → do not store it. Memory is leverage — not history.