@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.
- package/package.json +1 -1
- package/src/cli.js +8 -1
- package/src/commands/setup-context.js +6 -6
- package/src/commands/state-save.js +111 -13
- package/src/commands/update.js +6 -0
- package/src/constants.js +5 -1
- package/src/doctor.js +52 -0
- package/src/gateway-pointer-merge.js +103 -0
- package/src/i18n/messages/en.js +9 -2
- package/src/i18n/messages/es.js +9 -2
- package/src/i18n/messages/fr.js +9 -2
- package/src/i18n/messages/pt-BR.js +9 -2
- package/src/installer.js +39 -1
- package/src/jargon-leak-doctor.js +257 -0
- package/src/migrations/profile-rename.js +66 -0
- package/src/onboarding.js +7 -5
- package/src/parser.js +11 -2
- package/src/updater.js +21 -4
- package/template/.aioson/agents/analyst.md +12 -0
- package/template/.aioson/agents/dev.md +3 -0
- package/template/.aioson/agents/deyvin.md +9 -7
- package/template/.aioson/agents/neo.md +20 -5
- package/template/.aioson/agents/product.md +22 -6
- package/template/.aioson/agents/setup.md +6 -4
- package/template/.aioson/docs/deyvin/runtime-handoffs.md +6 -0
- package/template/.aioson/docs/handoff-persistence.md +94 -0
- package/template/.aioson/skills/process/decision-presentation/SKILL.md +119 -0
- package/template/.aioson/skills/process/decision-presentation/references/jargon-map.en.yaml +108 -0
- package/template/.aioson/skills/process/decision-presentation/references/jargon-map.pt-BR.yaml +108 -0
|
@@ -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.
|
|
258
|
-
2.
|
|
259
|
-
3. Before
|
|
260
|
-
4. Before writing or updating any PRD file, load `.aioson/docs/product/
|
|
261
|
-
5.
|
|
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.
|
|
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 → `
|
|
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
|
-
###
|
|
238
|
+
### Creator profile — extra guidance
|
|
238
239
|
After collecting the description:
|
|
239
|
-
1. Propose a
|
|
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|
|
|
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"]
|
package/template/.aioson/skills/process/decision-presentation/references/jargon-map.pt-BR.yaml
ADDED
|
@@ -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"]
|