@jaimevalasek/aioson 1.9.0 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -254,11 +254,12 @@ The detailed product protocol is split into on-demand framework docs:
254
254
 
255
255
  Run this before asking the first product question or writing any PRD:
256
256
 
257
- 1. After mode detection, load `.aioson/docs/product/conversation-playbook.md`
258
- 2. Before the first synthesis or any finalize decision, load `.aioson/docs/product/research-loop.md` and derive the current keyword set
259
- 3. Before writing or updating any PRD file, load `.aioson/docs/product/quality-lens.md`
260
- 4. Before writing or updating any PRD file, load `.aioson/docs/product/prd-contract.md`
261
- 5. If `project_type` is `site` or `web_app`, `design_skill` is already set, or the user mentions visual quality/preferences, use the loaded docs to preserve the design-skill decision and the `## Visual identity` contract
257
+ 1. Always load `.aioson/skills/process/decision-presentation/SKILL.md` before the first user-facing question. Mandatory regardless of profile.
258
+ 2. After mode detection, load `.aioson/docs/product/conversation-playbook.md`
259
+ 3. Before the first synthesis or any finalize decision, load `.aioson/docs/product/research-loop.md` and derive the current keyword set
260
+ 4. Before writing or updating any PRD file, load `.aioson/docs/product/quality-lens.md`
261
+ 5. Before writing or updating any PRD file, load `.aioson/docs/product/prd-contract.md`
262
+ 6. If `project_type` is `site` or `web_app`, `design_skill` is already set, or the user mentions visual quality/preferences, use the loaded docs to preserve the design-skill decision and the `## Visual identity` contract
262
263
 
263
264
  Do not proceed to PRD writing until the research loop, quality lens, and PRD contract have all been loaded.
264
265
 
@@ -267,7 +268,7 @@ Do not proceed to PRD writing until the research loop, quality lens, and PRD con
267
268
  The essential product conversation rules are:
268
269
 
269
270
  1. First message = one open question only
270
- 2. From the second message onward, ask up to 5 numbered questions per batch
271
+ 2. Cadence by `profile` (from `project.context.md`): `creator` (or absent/auto) → 1 question per turn via `AskUserQuestion` with `(Recomendado)` on the first option and `Pausar / quero pensar` always available; `developer` → up to 5 numbered questions per batch; `team` → up to 5 per batch + emit executive summary at `agent:done`
271
272
  3. End every batch with: `6 - Finalize — write the PRD now with what we have.`
272
273
  4. Reflect understanding before opening a new topic
273
274
  5. Surface edge cases, ownership, empty states, dependencies, and failure modes proactively
@@ -340,6 +341,7 @@ If a question is outside product scope, acknowledge it briefly and redirect: "Th
340
341
 
341
342
  ## Hard constraints
342
343
  - Use `interaction_language` (fallback: `conversation_language`) from project context for all interaction and output.
344
+ - Never present multiple open questions in one turn when `profile=creator` (or absent/auto). Always use `AskUserQuestion` with explicit `(Recomendado)` marker on the first option, plain-language `why`, and `Pausar / quero pensar` non-default option.
343
345
  - Never produce a PRD section you haven't actually discussed — write "TBD" instead.
344
346
  - Keep PRD files focused: if a section is growing beyond 5 bullet points, summarize.
345
347
  - Always run the integrity check before starting a feature conversation — never skip it.
@@ -347,5 +349,19 @@ If a question is outside product scope, acknowledge it briefly and redirect: "Th
347
349
  - **Always register every new feature in `features.md` before ending the session.** No PRD is complete without a corresponding `features.md` entry. Create `features.md` if it does not exist.
348
350
  - **Always emit the structured handoff** after writing the PRD. The session is not done until the next agent and action are explicit.
349
351
 
352
+ ## Dev handoff producer
353
+
354
+ When the PRD classification is **MICRO** (next agent will be `@dev` directly without intermediate stages), produce `dev-state.md` before the final `agent:done` call so the next `/dev` session auto-resumes on cold start:
355
+
356
+ ```bash
357
+ aioson dev:state:write . --feature={slug} \
358
+ --next="Implement MVP per prd-{slug}.md must-have section" \
359
+ --context=prd
360
+ ```
361
+
362
+ `--context` accepts canonical tokens (`prd`, `requirements`, `spec`, `architecture`, `impl-plan`, `sheldon`, `design-doc`, `dossier`), max 4 entries total. For MICRO features `--context=prd` is usually sufficient. Idempotent: re-running with the same args does not duplicate state.
363
+
364
+ Skip this step when classification is SMALL or MEDIUM — `@analyst` (and downstream agents) own the handoff producer in those flows.
365
+
350
366
  ## Observability
351
367
  At session end, register: `aioson agent:done . --agent=product --summary="PRD <slug>: <classification>, <N> stories" 2>/dev/null || true`
@@ -43,6 +43,7 @@ This single command installs the template, auto-detects the framework, infers th
43
43
  If the template is already installed but `project.context.md` is missing, proceed with detection and full onboarding below.
44
44
 
45
45
  ## Mandatory sequence
46
+ 0. Always load `.aioson/skills/process/decision-presentation/SKILL.md` before the first user-facing question. Mandatory regardless of profile.
46
47
  1. **Entry check** (above) — return summary if project.context.md exists and is valid; auto-repair first if it exists but is inconsistent; full flow if it does not exist.
47
48
  2. Detect framework in the current directory.
48
49
  3. Confirm detection with the user before proceeding.
@@ -123,7 +124,7 @@ Use the answer to infer `project_type`, `profile`, and a starter stack. Then go
123
124
  **Infer profile from context:**
124
125
  - Individual developer describing their own project → `developer`
125
126
  - "we", "our team", "our company" → `team`
126
- - Uncertain, non-technical description, or asking what to use → `beginner`
127
+ - Uncertain, non-technical description, or asking what to use → `creator`
127
128
 
128
129
  ### Step 2 — Propose complete stack and confirm
129
130
  After inferring project_type, propose a full stack in one message. Show everything at once:
@@ -234,9 +235,9 @@ For `api`, `script`, and non-UI-first scopes, keep `design_skill` empty unless t
234
235
 
235
236
  ---
236
237
 
237
- ### Beginner profile — extra guidance
238
+ ### Creator profile — extra guidance
238
239
  After collecting the description:
239
- 1. Propose a beginner-friendly stack (prefer managed services, minimal setup).
240
+ 1. Propose a creator-friendly stack (prefer managed services, minimal setup).
240
241
  2. Explain each choice in plain language.
241
242
  3. Ask for explicit confirmation before proceeding.
242
243
 
@@ -246,6 +247,7 @@ Respect existing conventions — do not suggest replacing team standards.
246
247
 
247
248
  ## Hard constraints
248
249
  - Never silently default `project_type`, `profile`, `classification`, `interaction_language`, or `conversation_language`.
250
+ - Never present multiple open questions in one turn when `profile=creator` (or absent/auto). Always use `AskUserQuestion` with explicit `(Recomendado)` marker on the first option, plain-language `why`, and `Pausar / quero pensar` non-default option.
249
251
  - If answers are partial, ask follow-up questions until required fields are complete.
250
252
  - If any assumption is made, ask explicit confirmation before writing the file.
251
253
 
@@ -284,7 +286,7 @@ Generate `.aioson/context/project.context.md` in this format:
284
286
  ---
285
287
  project_name: "<name>"
286
288
  project_type: "web_app|api|site|script|dapp"
287
- profile: "developer|beginner|team"
289
+ profile: "developer|creator|team"
288
290
  framework: "Laravel|Rails|Django|Next.js|Nuxt|Node|Hardhat|Foundry|Truffle|Anchor|Solana Web3|Cardano|..."
289
291
  framework_installed: true
290
292
  classification: "MICRO|SMALL|MEDIUM"
@@ -34,3 +34,9 @@ If the user did not enter through `aioson live:start`, keep one direct session o
34
34
  ## Dashboard visibility
35
35
 
36
36
  Plain natural-language agent activation in an external client does not create runtime records by itself. If the user wants tracked dashboard visibility, they must enter through `aioson workflow:next`, `aioson agent:prompt`, or `aioson live:start` first.
37
+
38
+ ## Cross-session handoffs — persist before /clear
39
+
40
+ The runtime helpers above cover same-session handoffs (`live:handoff`, `runtime:session:finish`). For cross-session handoffs — when the next agent will run in a fresh terminal or after `/clear` — chat memory does not survive. Before suggesting `/clear`, persist the diagnostic to `plans/{slug}.md` so the next agent works from an artifact rather than from a seed prompt.
41
+
42
+ Load `.aioson/docs/handoff-persistence.md` for the full pattern (when to apply, what to write, the exit-block template). Apply it whenever the recommended next agent is one that consumes raw plans (`/briefing` foremost, sometimes `/product`) or needs the full diagnostic to operate (`/analyst`, `/architect`, `/sheldon`). Skip when the next agent continues in the same session, or when the handoff is trivial.
@@ -0,0 +1,94 @@
1
+ ---
2
+ description: "Persist context to plans/{slug}.md before suggesting /clear in a cross-session handoff — preserves the diagnostic so the next agent works from an artifact, not from chat memory."
3
+ ---
4
+
5
+ # Handoff Persistence
6
+
7
+ Load this when you are about to issue a routing recommendation that involves `/clear`, a fresh terminal, or any other context boundary that drops the current conversation. Same-session handoffs (the next agent inherits the same chat) do not need this — skip the doc.
8
+
9
+ ## The problem
10
+
11
+ A routing agent (`@neo`, `@deyvin`) ends a session by suggesting:
12
+ 1. `/agent` — activate the next agent
13
+ 2. `/clear` — fresh context window before continuing
14
+
15
+ If the recommendation depends on diagnostic work done in this session (file reads, line numbers, decisions made, options weighed), and the user runs `/clear` first, **all of that context is lost**. The next agent reads only the seed prompt the user types — which can never capture the nuance of the actual diagnostic.
16
+
17
+ A seed prompt is a memory of a conversation. An artifact is a memory of work.
18
+
19
+ ## The rule
20
+
21
+ Before suggesting `/clear` to the user, persist the actionable diagnostic to `plans/{slug}.md` at the project root. Then the recommendation becomes:
22
+
23
+ ```
24
+ 1. Activate /briefing (or /product / /architect / …)
25
+ 2. /clear is safe — the next agent reads plans/{slug}.md
26
+ ```
27
+
28
+ `plans/` is the canonical input directory for `/briefing` (and a useful seed for `/product` too). The directory may not exist yet — create it.
29
+
30
+ ## When to apply
31
+
32
+ | Situation | Persist? |
33
+ |---|---|
34
+ | Handoff routes to an agent that takes raw plans (`/briefing` first and foremost, sometimes `/product`) | Yes |
35
+ | Handoff routes to an agent that needs a discovery pass (`/analyst`, `/architect`, `/sheldon`) | Yes — they read context from `.aioson/context/` AND from raw plans |
36
+ | Same-session continuation (`/dev` keeps going, `/qa` reviews implementation just done) | No — context is in chat |
37
+ | Handoff happens via tracked live session (`aioson live:handoff`) | No — telemetry already carries the trail |
38
+ | Trivial routing ("you want `/setup` first") with no diagnostic to preserve | No |
39
+
40
+ ## What to write
41
+
42
+ Structure of `plans/{slug}.md` (lightweight — `/briefing` will enrich it):
43
+
44
+ ```md
45
+ # {Short title} — raw plan
46
+
47
+ > Status: raw input for /{next-agent}. Generated {date} during a /{this-agent} session.
48
+
49
+ ## Why this exists
50
+ 1-2 paragraphs framing the problem in the user's terms.
51
+
52
+ ## Symptoms observed
53
+ Concrete pinned facts: line numbers, file paths, command outputs. Not opinions.
54
+
55
+ ## What's already delivered
56
+ If part of the work landed in this session, name the commits/files.
57
+
58
+ ## Proposed scope (if applicable)
59
+ Layers / phases / options the next agent should consider. Mark recommendations.
60
+
61
+ ## Open decisions for the next agent to surface
62
+ Questions that need user input but were out of scope for this session.
63
+
64
+ ## Pointers
65
+ Files, commits, line numbers, related plans/. The next agent reads these directly.
66
+
67
+ ## Out of scope
68
+ What you deliberately did NOT cover. Prevents the next agent from re-litigating.
69
+ ```
70
+
71
+ Slug rules: kebab-case, descriptive, unique inside `plans/`. Examples: `lay-user-agent-mode.md`, `payment-integration.md`, `auth-rewrite-rfc.md`. Avoid generic names like `notes.md` or `plan.md`.
72
+
73
+ ## What to tell the user
74
+
75
+ After persisting, end with a clear handoff block. Example:
76
+
77
+ ```
78
+ ## Next Up
79
+ - Routed to: /briefing
80
+ - Activate: /briefing
81
+ - Context persisted: plans/lay-user-agent-mode.md
82
+ - /clear is safe — the next agent reads from the file
83
+
84
+ Session artifacts written:
85
+ - [x] plans/lay-user-agent-mode.md
86
+ - [x] {any other files this session produced}
87
+ ```
88
+
89
+ ## Anti-patterns
90
+
91
+ - **Inlining 2 KB of diagnostic as a "seed prompt" in the routing message.** The user shouldn't have to copy-paste a wall of text. Persist it.
92
+ - **Persisting trivial routings.** A user who asks "what does `/setup` do" doesn't need a `plans/` file written. Apply the table above.
93
+ - **Persisting code archaeology.** Code lives in code; reading recommendations live in the artifact only when they would otherwise be lost across `/clear`.
94
+ - **Forgetting to mention the file.** If you wrote `plans/{slug}.md` but the handoff message doesn't reference it, the user won't know to read it (or to let the next agent read it).
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: decision-presentation
3
+ description: Process skill for profile-aware user-facing decisions. Translates framework jargon, enforces (Recomendado) marker on AskUserQuestion, and caps cadence at 1 question/turn when profile=creator. Load before the first user-facing question regardless of profile.
4
+ activation: |
5
+ You are now running the decision-presentation process. Read `profile` from `.aioson/context/project.context.md`. If `profile=creator` (or absent/auto), enforce strict mode: 1 question per turn via AskUserQuestion with explicit (Recomendado) marker on the first option, plain-language `why`, and "Pausar / quero pensar" always available. If `profile=developer`, allow standard cadence (up to 5 numbered questions per batch, jargon permitted). If `profile=team`, behave as developer + emit `summary-{slug}-executive.md` at agent:done.
6
+ ---
7
+
8
+ # Skill: decision-presentation
9
+
10
+ > Process skill. Profile-aware UX layer for user-facing decisions.
11
+ > Load this file first. Then lazy-load `references/jargon-map.{en,pt-BR}.yaml` only when about to emit a framework term.
12
+
13
+ ## When to use
14
+
15
+ Load this skill before the first user-facing decision in any agent that interacts directly with the user. Mandatory in V1 for: `@neo`, `@setup`, `@product`, `@dev`, `@deyvin`.
16
+
17
+ Activation mode is decided by `profile` in `project.context.md`:
18
+
19
+ | profile | cadence | jargon | recommendation marker |
20
+ |---------|---------|--------|----------------------|
21
+ | `creator` (default) | 1 question per turn | translated via dictionary | mandatory `(Recomendado)` |
22
+ | `developer` | up to 5 per batch | permitted | optional |
23
+ | `team` | up to 5 per batch | permitted | optional + executive summary at agent:done |
24
+
25
+ When `profile` is absent, empty, or `auto`, treat as `creator` (safer default).
26
+
27
+ ## Core rules
28
+
29
+ ### Rule 1 — AskUserQuestion is mandatory for decisions
30
+
31
+ When `profile=creator`, never emit free-form open questions to the user. Always use `AskUserQuestion` with 2-4 options. Free-form input is only allowed inside an "Other / Conte com suas palavras" option of an otherwise-structured question.
32
+
33
+ ### Rule 2 — Recommendation marker on first option
34
+
35
+ When `profile=creator`, the first option in every `AskUserQuestion` carries `(Recomendado)` in its label AND a one-sentence `description` explaining the recommendation in plain language. Trade-offs are expressed operationally: "se escolher X, demora mais mas evita Y".
36
+
37
+ ### Rule 3 — One question per turn (creator mode)
38
+
39
+ When `profile=creator`, each agent turn emits at most 1 `AskUserQuestion`. Multiple decisions are staged across turns. Reflection of understanding precedes each new decision.
40
+
41
+ ### Rule 4 — Jargon translation via dictionary
42
+
43
+ Before emitting any framework term, lazy-load the jargon-map for `interaction_language` (en or pt-BR; fallback to en). Look up the canonical term and substitute the `translation`. If a term is not in the dictionary, emit it verbatim (no transformation) and consider it a candidate for V2 dictionary coverage.
44
+
45
+ When `profile=developer`, jargon is permitted unaltered. When `profile=team`, jargon is permitted in the operator-facing flow but the executive summary uses translations.
46
+
47
+ ### Rule 5 — Pause option always available
48
+
49
+ Every `AskUserQuestion` in creator mode includes an option labeled "Pausar / quero pensar" (or its `en` equivalent "Pause / let me think") with `description: "Você pode parar agora e retomar mais tarde. O agente registra o estado e continua na próxima sessão."`
50
+
51
+ ### Rule 6 — Five-or-more alternatives escape hatch
52
+
53
+ `AskUserQuestion` accepts 2-4 options (harness limit). When a decision has 5+ valid alternatives:
54
+
55
+ 1. Surface the 3 strongest alternatives via `AskUserQuestion` with `(Recomendado)` on the first.
56
+ 2. Add a free-form option labeled "Other / Conte com suas palavras" as the last option.
57
+ 3. If the user picks "Other", the agent synthesizes the free-form answer into one of the known alternatives internally.
58
+
59
+ ## Loading order
60
+
61
+ 1. Agent kernel preflight loads this `SKILL.md`.
62
+ 2. Agent reads `profile` from `project.context.md`.
63
+ 3. When about to emit a framework term, agent lazy-loads `references/jargon-map.{lang}.yaml` (only the file matching `interaction_language` or `conversation_language`).
64
+ 4. Translation lookup is case-sensitive with word-boundary matching (regex `\b{term}\b`). Substring matches like "MICRO" inside "MICROserviços" do NOT match.
65
+
66
+ ## API surface (V1 — prompt-level only)
67
+
68
+ V1 exposes no executable functions. The skill is pure prompt-level guidance — the agent reads these rules and adapts behavior. V2 may add imperative helpers (`present_decision(question, options, recommended_index, plain_language_why)`, `translate(term, target_lang, profile)`) if doctor check repeatedly catches violations.
69
+
70
+ Optional API hook reserved for task-mode override: `force_profile` — an explicit profile override that bypasses the project.context.md value for a single decision. V1 reads this from a per-call argument; V2 may activate task-mode (skill activates per task, not per identity).
71
+
72
+ ## Output contract
73
+
74
+ When this skill is active, every user-facing decision produces:
75
+
76
+ - one `AskUserQuestion` (creator mode) or up to 5 batched numbered questions (developer/team mode)
77
+ - a `(Recomendado)` marker on the first option (creator mode; optional for developer/team)
78
+ - jargon translated via dictionary (creator mode) or verbatim (developer/team mode)
79
+ - a "Pausar / quero pensar" option (creator mode)
80
+ - no free-form open questions outside the escape hatch
81
+
82
+ ## Doctor check integration
83
+
84
+ The doctor check `jargon_leak_detection` (defined in this same feature) verifies adherence in CI:
85
+
86
+ - scope filter: only events from `[neo, setup, product, dev, deyvin]`
87
+ - profile filter: only runs when active project has `profile=creator`
88
+ - success threshold: `count=0` jargon leaks in a feature MICRO completa run with `profile=creator`
89
+
90
+ Skill failure does not break `report.ok` — severity is `warning` (advisory).
91
+
92
+ ## Default profile semantics
93
+
94
+ | project.context.md value | effective profile |
95
+ |--------------------------|-------------------|
96
+ | `profile: creator` | creator |
97
+ | `profile: developer` | developer |
98
+ | `profile: team` | team |
99
+ | `profile: auto` | creator (safer default) |
100
+ | `profile:` (empty) | creator |
101
+ | missing `profile` field | creator |
102
+ | legacy `profile: beginner` | creator (migrated by installer) |
103
+
104
+ ## Migration note (beginner → creator)
105
+
106
+ Legacy projects with `profile: beginner` are migrated by `aioson update`:
107
+
108
+ 1. Installer detects `profile: beginner` in `project.context.md` frontmatter.
109
+ 2. Rewrites to `profile: creator`.
110
+ 3. Emits `runtime:emit --type=migration --level=info` with message: "Profile `beginner` renamed to `creator` to better describe the user. Behavior unchanged. Edit `.aioson/context/project.context.md` to switch to `developer` if desired."
111
+ 4. Migration is idempotent — running twice does not double-emit nor reverse.
112
+
113
+ ## What this skill does NOT do
114
+
115
+ - Does not intercept agent output at runtime (no in-loop guard). Violations are caught after-fact by `jargon_leak_detection`.
116
+ - Does not auto-detect profile via behavioral heuristics (V2).
117
+ - Does not capture full agent transcripts (V2; V1 sees summaries via `agent_events`).
118
+ - Does not activate task-mode override (V1 reserves the API; V2 implements).
119
+ - Does not load for `@analyst`, `@architect`, `@qa`, `@discovery-design-doc`, `@briefing`, `@committer` (V2 follow-up after V1 validates).
@@ -0,0 +1,108 @@
1
+ version: 1
2
+ language: en
3
+ # Jargon dictionary — English translations for the decision-presentation skill.
4
+ # Lookup: case-sensitive, word-boundary (\b{term}\b). Substring matches blocked.
5
+ # Lazy-loaded by the skill only when about to emit a framework term to a creator-profile user.
6
+ # Adding a term: keep `translation` short (≤6 words), `context` plain language (≤120 chars),
7
+ # `examples` covering typical phrasings the term appears in.
8
+
9
+ terms:
10
+ MICRO:
11
+ translation: "quick"
12
+ context: "A small feature type — usually finishes in 1-2 hours of work."
13
+ examples: ["feature MICRO", "classification: MICRO", "MICRO project"]
14
+
15
+ SMALL:
16
+ translation: "standard"
17
+ context: "A medium-sized feature type — usually takes 1-3 days end to end."
18
+ examples: ["classification: SMALL", "SMALL feature"]
19
+
20
+ MEDIUM:
21
+ translation: "full"
22
+ context: "A complex feature type — takes a week or more, with several review checkpoints."
23
+ examples: ["classification: MEDIUM", "MEDIUM project"]
24
+
25
+ "Gate A":
26
+ translation: "first checkpoint — requirements ready"
27
+ context: "Confirms the requirements are written down before anyone starts building."
28
+ examples: ["Gate A pending", "Gate A approved"]
29
+
30
+ "Gate B":
31
+ translation: "design checkpoint — architecture decided"
32
+ context: "Confirms how the system will be built before code starts."
33
+ examples: ["Gate B pending", "Gate B approved"]
34
+
35
+ "Gate C":
36
+ translation: "plan checkpoint — execution plan signed off"
37
+ context: "Confirms the step-by-step plan is in place before implementation."
38
+ examples: ["Gate C pending", "Gate C approved"]
39
+
40
+ "Gate D":
41
+ translation: "final review before closing"
42
+ context: "Last quality check the QA does before marking the feature as done."
43
+ examples: ["Gate D pending", "Gate D approved"]
44
+
45
+ tier1:
46
+ translation: "silent automated action"
47
+ context: "An action the agent takes by itself, no notification — usually reading or telemetry."
48
+ examples: ["tier1 command", "tier1 silent"]
49
+
50
+ tier2:
51
+ translation: "notified automated action"
52
+ context: "An action the agent takes and tells you about — usually a write to memory."
53
+ examples: ["tier2 command", "tier2 notified"]
54
+
55
+ tier3:
56
+ translation: "action that needs your approval"
57
+ context: "An irreversible action the agent never does alone — like publishing or pushing."
58
+ examples: ["tier3 command", "tier3 blocking"]
59
+
60
+ circuit_open:
61
+ translation: "safety brake engaged"
62
+ context: "A built-in stop that prevents the agent from retrying after repeated failures."
63
+ examples: ["circuit_open", "circuit state: CLOSED"]
64
+
65
+ harness-contract:
66
+ translation: "agent runtime agreement"
67
+ context: "The set of rules a feature commits to follow so the agent runtime can track it."
68
+ examples: ["harness-contract.json", "harness contract"]
69
+
70
+ waiting_validation:
71
+ translation: "waiting for QA approval"
72
+ context: "Feature is implemented but QA hasn't signed off yet."
73
+ examples: ["status: waiting_validation"]
74
+
75
+ ready_for_done_gate:
76
+ translation: "ready for final review"
77
+ context: "Feature passed all earlier checks and is queued for the final QA pass."
78
+ examples: ["ready_for_done_gate: true"]
79
+
80
+ dossier:
81
+ translation: "feature folder"
82
+ context: "A living document that consolidates everything about one feature in one place."
83
+ examples: ["feature dossier", "dossier.md"]
84
+
85
+ brain:
86
+ translation: "agent memory pattern file"
87
+ context: "Procedural memory the agent reuses — like reminders learned from past projects."
88
+ examples: ["brain node", "brain pattern"]
89
+
90
+ scout:
91
+ translation: "side investigation"
92
+ context: "A quick read-only side task that gathers information without interrupting main work."
93
+ examples: ["scout subtask", "scout dispatch"]
94
+
95
+ in_progress:
96
+ translation: "in progress"
97
+ context: "Work is happening right now on this item."
98
+ examples: ["status: in_progress"]
99
+
100
+ done:
101
+ translation: "finished"
102
+ context: "Item is closed and shipped."
103
+ examples: ["status: done"]
104
+
105
+ classification:
106
+ translation: "feature type"
107
+ context: "How big the feature is — `quick`, `standard`, or `full`."
108
+ examples: ["classification: SMALL"]
@@ -0,0 +1,108 @@
1
+ version: 1
2
+ language: pt-BR
3
+ # Dicionário de jargão — traduções pt-BR para a skill decision-presentation.
4
+ # Lookup: case-sensitive, word-boundary (\b{term}\b). Match por substring bloqueado.
5
+ # Carga lazy pela skill só quando vai emitir um termo de framework pra usuário com profile=creator.
6
+ # Adicionar termo: `translation` curto (≤6 palavras), `context` em linguagem corrente (≤120 chars),
7
+ # `examples` cobrindo frases típicas onde o termo aparece.
8
+
9
+ terms:
10
+ MICRO:
11
+ translation: "rápida"
12
+ context: "Tipo de feature pequena — costuma fechar em 1-2 horas de trabalho."
13
+ examples: ["feature MICRO", "classification: MICRO", "projeto MICRO"]
14
+
15
+ SMALL:
16
+ translation: "padrão"
17
+ context: "Tipo de feature de médio porte — costuma levar 1-3 dias do início ao fim."
18
+ examples: ["classification: SMALL", "feature SMALL"]
19
+
20
+ MEDIUM:
21
+ translation: "completa"
22
+ context: "Tipo de feature complexa — leva uma semana ou mais, com vários checkpoints de revisão."
23
+ examples: ["classification: MEDIUM", "projeto MEDIUM"]
24
+
25
+ "Gate A":
26
+ translation: "primeiro checkpoint — requisitos prontos"
27
+ context: "Confirma que os requisitos estão escritos antes de alguém começar a construir."
28
+ examples: ["Gate A pending", "Gate A aprovado"]
29
+
30
+ "Gate B":
31
+ translation: "checkpoint de desenho — arquitetura decidida"
32
+ context: "Confirma como o sistema vai ser construído antes do código começar."
33
+ examples: ["Gate B pending", "Gate B aprovado"]
34
+
35
+ "Gate C":
36
+ translation: "checkpoint de plano — execução assinada"
37
+ context: "Confirma que o passo a passo está pronto antes da implementação."
38
+ examples: ["Gate C pending", "Gate C aprovado"]
39
+
40
+ "Gate D":
41
+ translation: "revisão final antes de fechar"
42
+ context: "Última verificação que o QA faz antes de marcar a feature como pronta."
43
+ examples: ["Gate D pending", "Gate D aprovado"]
44
+
45
+ tier1:
46
+ translation: "ação automática silenciosa"
47
+ context: "Uma ação que o agente faz sozinho, sem avisar — normalmente leitura ou telemetria."
48
+ examples: ["comando tier1", "tier1 silent"]
49
+
50
+ tier2:
51
+ translation: "ação automática com aviso"
52
+ context: "Uma ação que o agente faz e te avisa — normalmente escrita na memória."
53
+ examples: ["comando tier2", "tier2 notified"]
54
+
55
+ tier3:
56
+ translation: "ação que precisa da sua aprovação"
57
+ context: "Ação irreversível que o agente nunca faz sozinho — tipo publicar ou dar push."
58
+ examples: ["comando tier3", "tier3 blocking"]
59
+
60
+ circuit_open:
61
+ translation: "freio de segurança acionado"
62
+ context: "Parada interna que impede o agente de tentar de novo depois de falhas em sequência."
63
+ examples: ["circuit_open", "circuit state: CLOSED"]
64
+
65
+ harness-contract:
66
+ translation: "contrato do runtime do agente"
67
+ context: "Conjunto de regras que a feature se compromete a seguir pra o runtime do agente conseguir rastrear."
68
+ examples: ["harness-contract.json", "harness contract"]
69
+
70
+ waiting_validation:
71
+ translation: "esperando aprovação do QA"
72
+ context: "Feature está implementada mas o QA ainda não deu o OK."
73
+ examples: ["status: waiting_validation"]
74
+
75
+ ready_for_done_gate:
76
+ translation: "pronto pra revisão final"
77
+ context: "Feature passou em todas as verificações anteriores e está na fila do QA final."
78
+ examples: ["ready_for_done_gate: true"]
79
+
80
+ dossier:
81
+ translation: "pasta da feature"
82
+ context: "Documento vivo que consolida tudo sobre uma feature num lugar só."
83
+ examples: ["dossier da feature", "dossier.md"]
84
+
85
+ brain:
86
+ translation: "memória de padrões do agente"
87
+ context: "Memória procedural que o agente reusa — tipo lembretes aprendidos de projetos antigos."
88
+ examples: ["nó de brain", "padrão de brain"]
89
+
90
+ scout:
91
+ translation: "investigação paralela"
92
+ context: "Tarefa rápida e somente-leitura que coleta informação sem atrapalhar o trabalho principal."
93
+ examples: ["subtarefa scout", "scout dispatch"]
94
+
95
+ in_progress:
96
+ translation: "em andamento"
97
+ context: "Trabalho está acontecendo neste item agora."
98
+ examples: ["status: in_progress"]
99
+
100
+ done:
101
+ translation: "concluído"
102
+ context: "Item está fechado e entregue."
103
+ examples: ["status: done"]
104
+
105
+ classification:
106
+ translation: "tipo de feature"
107
+ context: "Quão grande é a feature — `rápida`, `padrão` ou `completa`."
108
+ examples: ["classification: SMALL"]