@jaimevalasek/aioson 1.28.1 → 1.30.0

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.
Files changed (155) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +7 -5
  3. package/docs/en/5-reference/cli-reference.md +40 -10
  4. package/docs/pt/4-agentes/briefing.md +2 -0
  5. package/docs/pt/4-agentes/copywriter.md +2 -0
  6. package/docs/pt/4-agentes/genome.md +1 -0
  7. package/docs/pt/4-agentes/pm.md +1 -1
  8. package/docs/pt/4-agentes/profiler-enricher.md +2 -0
  9. package/docs/pt/4-agentes/profiler-forge.md +2 -0
  10. package/docs/pt/4-agentes/sheldon.md +2 -0
  11. package/docs/pt/4-agentes/squad.md +12 -10
  12. package/docs/pt/5-referencia/autopilot-handoff.md +4 -4
  13. package/docs/pt/5-referencia/comandos-cli.md +7 -3
  14. package/docs/pt/5-referencia/fluxo-artefatos.md +1 -1
  15. package/docs/pt/5-referencia/memoria-e-contexto.md +62 -2
  16. package/docs/pt/_arquivo/monitor-de-contexto.md +2 -2
  17. package/package.json +4 -2
  18. package/src/cli.js +72 -24
  19. package/src/commands/ac-test-audit.js +45 -0
  20. package/src/commands/artifact-validate.js +62 -50
  21. package/src/commands/classify.js +73 -2
  22. package/src/commands/context-brief.js +59 -0
  23. package/src/commands/context-guard.js +88 -0
  24. package/src/commands/context-monitor.js +1 -1
  25. package/src/commands/context-search.js +101 -52
  26. package/src/commands/context-select.js +11 -2
  27. package/src/commands/feature-archive.js +21 -12
  28. package/src/commands/feature-current.js +82 -0
  29. package/src/commands/gate-check.js +32 -15
  30. package/src/commands/harness-check.js +17 -1
  31. package/src/commands/hooks-install.js +169 -26
  32. package/src/commands/hygiene-scan.js +423 -0
  33. package/src/commands/rules-lint.js +124 -0
  34. package/src/commands/sdd-benchmark.js +134 -0
  35. package/src/commands/spec-analyze.js +6 -4
  36. package/src/commands/store-system.js +329 -49
  37. package/src/constants.js +8 -3
  38. package/src/context-brief.js +585 -0
  39. package/src/context-guard.js +209 -0
  40. package/src/context-search.js +796 -96
  41. package/src/context-selector.js +802 -420
  42. package/src/handoff-contract.js +14 -6
  43. package/src/harness/contract-schema.js +1 -1
  44. package/src/i18n/messages/en.js +12 -5
  45. package/src/i18n/messages/es.js +11 -4
  46. package/src/i18n/messages/fr.js +11 -4
  47. package/src/i18n/messages/pt-BR.js +12 -5
  48. package/src/lib/ac-test-audit.js +194 -0
  49. package/src/preflight-engine.js +10 -6
  50. package/src/squad/state-manager.js +1 -1
  51. package/template/.aioson/agents/analyst.md +93 -53
  52. package/template/.aioson/agents/architect.md +41 -32
  53. package/template/.aioson/agents/briefing-refiner.md +15 -2
  54. package/template/.aioson/agents/briefing.md +105 -86
  55. package/template/.aioson/agents/committer.md +1 -1
  56. package/template/.aioson/agents/copywriter.md +53 -10
  57. package/template/.aioson/agents/design-hybrid-forge.md +9 -5
  58. package/template/.aioson/agents/dev.md +22 -25
  59. package/template/.aioson/agents/deyvin.md +126 -124
  60. package/template/.aioson/agents/discover.md +8 -9
  61. package/template/.aioson/agents/discovery-design-doc.md +52 -36
  62. package/template/.aioson/agents/forge-run.md +3 -0
  63. package/template/.aioson/agents/genome.md +12 -6
  64. package/template/.aioson/agents/neo.md +30 -24
  65. package/template/.aioson/agents/orache.md +16 -21
  66. package/template/.aioson/agents/orchestrator.md +40 -31
  67. package/template/.aioson/agents/pentester.md +22 -12
  68. package/template/.aioson/agents/pm.md +11 -2
  69. package/template/.aioson/agents/product.md +162 -183
  70. package/template/.aioson/agents/profiler-enricher.md +29 -6
  71. package/template/.aioson/agents/profiler-forge.md +16 -6
  72. package/template/.aioson/agents/profiler-researcher.md +10 -6
  73. package/template/.aioson/agents/qa.md +29 -19
  74. package/template/.aioson/agents/scope-check.md +14 -2
  75. package/template/.aioson/agents/sheldon.md +51 -21
  76. package/template/.aioson/agents/site-forge.md +4 -6
  77. package/template/.aioson/agents/squad.md +7 -12
  78. package/template/.aioson/agents/tester.md +40 -30
  79. package/template/.aioson/agents/ux-ui.md +56 -41
  80. package/template/.aioson/agents/validator.md +2 -2
  81. package/template/.aioson/config.md +4 -3
  82. package/template/.aioson/design-docs/agent-loading-contract.md +3 -3
  83. package/template/.aioson/docs/LAYERS.md +2 -0
  84. package/template/.aioson/docs/autonomy-protocol.md +7 -5
  85. package/template/.aioson/docs/autopilot-handoff.md +5 -3
  86. package/template/.aioson/docs/dev/execution-discipline.md +3 -0
  87. package/template/.aioson/docs/dev/simple-plan-lane.md +126 -77
  88. package/template/.aioson/docs/dev/stack-conventions.md +4 -1
  89. package/template/.aioson/docs/deyvin/continuity-recovery.md +21 -18
  90. package/template/.aioson/docs/deyvin/debugging-escalation.md +3 -0
  91. package/template/.aioson/docs/deyvin/pair-execution.md +3 -0
  92. package/template/.aioson/docs/deyvin/runtime-handoffs.md +6 -3
  93. package/template/.aioson/docs/dossier/agent-templates.md +3 -0
  94. package/template/.aioson/docs/dossier/schema.md +3 -0
  95. package/template/.aioson/docs/example-external-api-context.md +2 -0
  96. package/template/.aioson/docs/feature-expansion-taxonomy.md +53 -0
  97. package/template/.aioson/docs/handoff-persistence.md +95 -91
  98. package/template/.aioson/docs/pentester/app-playbooks.md +3 -0
  99. package/template/.aioson/docs/pentester/browser-dast-playbook.md +401 -398
  100. package/template/.aioson/docs/pentester/llm-supplychain.md +3 -0
  101. package/template/.aioson/docs/product/conversation-playbook.md +1 -1
  102. package/template/.aioson/docs/quality/code-health-analysis.md +2 -0
  103. package/template/.aioson/docs/sheldon/enrichment-paths.md +47 -1
  104. package/template/.aioson/docs/sheldon/harness-contract.md +26 -21
  105. package/template/.aioson/docs/sheldon/quality-lens.md +3 -0
  106. package/template/.aioson/docs/sheldon/research-loop.md +3 -0
  107. package/template/.aioson/docs/sheldon/web-intelligence.md +3 -0
  108. package/template/.aioson/docs/site-forge-build.md +4 -2
  109. package/template/.aioson/docs/site-forge-extraction.md +2 -0
  110. package/template/.aioson/docs/site-forge-qa.md +2 -0
  111. package/template/.aioson/docs/site-forge-recon.md +7 -5
  112. package/template/.aioson/docs/site-forge-transform.md +2 -0
  113. package/template/.aioson/docs/squad/content-output.md +3 -0
  114. package/template/.aioson/docs/squad/creation-flow.md +22 -1
  115. package/template/.aioson/docs/squad/domain-breadth.md +3 -0
  116. package/template/.aioson/docs/squad/domain-classification.md +3 -0
  117. package/template/.aioson/docs/squad/eval-gate.md +3 -0
  118. package/template/.aioson/docs/squad/genome-bindings.md +14 -0
  119. package/template/.aioson/docs/squad/package-contract.md +5 -0
  120. package/template/.aioson/docs/squad/persona-grounding.md +65 -62
  121. package/template/.aioson/docs/squad/quality-lens.md +3 -0
  122. package/template/.aioson/docs/squad/research-loop.md +3 -0
  123. package/template/.aioson/docs/squad/session-operations.md +3 -0
  124. package/template/.aioson/docs/squad/workflow-quality.md +3 -0
  125. package/template/.aioson/docs/tester/coverage-quality.md +4 -1
  126. package/template/.aioson/docs/ux-ui/design-execution.md +9 -7
  127. package/template/.aioson/rules/README.md +48 -2
  128. package/template/.aioson/rules/agent-language-policy.md +26 -21
  129. package/template/.aioson/rules/agent-structural-contract.md +168 -158
  130. package/template/.aioson/rules/aioson-context-boundary.md +7 -1
  131. package/template/.aioson/rules/canonical-path-contract.md +16 -10
  132. package/template/.aioson/rules/data-format-convention.md +17 -11
  133. package/template/.aioson/rules/disk-first-artifacts.md +12 -8
  134. package/template/.aioson/rules/example-monetary-values.md +4 -0
  135. package/template/.aioson/rules/implementation-structure-and-data-access.md +50 -0
  136. package/template/.aioson/rules/output-brevity.md +2 -0
  137. package/template/.aioson/rules/prd-section-ownership.md +17 -12
  138. package/template/.aioson/rules/security-baseline.md +8 -3
  139. package/template/.aioson/rules/simple-plan-lane.md +22 -5
  140. package/template/.aioson/rules/source-code-language-convention.md +34 -0
  141. package/template/.aioson/rules/spec-level-ownership.md +10 -5
  142. package/template/.aioson/rules/squad-driver-pattern.md +5 -0
  143. package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +24 -23
  144. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +4 -0
  145. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +2 -2
  146. package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +1 -1
  147. package/template/.aioson/skills/process/briefing-expansion-scout/SKILL.md +72 -0
  148. package/template/.aioson/skills/process/product-scope-expansion/SKILL.md +74 -0
  149. package/template/.aioson/skills/process/sheldon-expansion-audit/SKILL.md +67 -0
  150. package/template/.aioson/skills/static/context-budget-guide.md +1 -1
  151. package/template/.aioson/skills/static/multi-agent-patterns.md +5 -4
  152. package/template/.aioson/tasks/squad-create.md +11 -0
  153. package/template/.aioson/tasks/squad-design.md +3 -3
  154. package/template/AGENTS.md +36 -19
  155. package/template/CLAUDE.md +9 -5
package/CHANGELOG.md CHANGED
@@ -2,6 +2,48 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.30.0] - 2026-06-22
6
+
7
+ ### Added
8
+ - **Context intelligence and hygiene tooling.** Added the `context:brief` recall path, operational `context:guard` hook adapter/injection flow, guard rule attribution, and the read-only `hygiene:scan` diagnostic for stale session/context noise.
9
+ - **Gate D proof hardening.** Added AC-to-test audit and evidence-gated Gate D expectations across SDD, QA, and agent contracts.
10
+
11
+ ### Changed
12
+ - **Agent context loading now uses canonical context paths.** Gateway and agent prompts resolve `project-pulse.md`, `features.md`, `dev-state.md`, `last-handoff.json`, and `workflow.state.json` to `.aioson/context/`, preventing root or `.aioson/` misreads during activation recovery.
13
+ - **Feature routing and recall are stricter.** Slug resolution, recall index isolation, `context:guard` salience, and selected-context loading were tightened across the spec chain.
14
+
15
+ ### Fixed
16
+ - **Context intelligence safety fixes.** Hardened hook agent-name validation, tester test-plan/test-inventory scoping, Sheldon validation scoping, deleted-file recall cleanup, Windows temp-dir cleanup, and the context subsystem P1-P5 audit findings.
17
+ - **Feature archive restore cleanup.** Retried empty archive-directory removal during restore to avoid leaving `.aioson/context/done/{slug}/` behind on transient Windows filesystem locks.
18
+
19
+ ## [1.29.2] - 2026-06-13
20
+
21
+ ### Fixed
22
+ - **`aioson system:publish` crashava com `Error: archiver is not a function`.** O `archiver` tinha sido atualizado para `^8.0.0`, uma reescrita ESM que removeu a API chamável `archiver('zip', opts)` e passou a exportar só classes nomeadas (`Archiver`, `ZipArchive`, …) — sem função default. Fixado de volta em `^7.0.1` (CommonJS, API chamável que `createZipBuffer` em `src/commands/store-system.js` espera), o que também elimina o `ExperimentalWarning` de ESM-em-require no Node 23.
23
+
24
+ ## [1.29.1] - 2026-06-12
25
+
26
+ ### Docs
27
+ - **Documented the v1.29.0 selective-context model in the project docs.** New "Carregamento seletivo de contexto" section in `memoria-e-contexto.md` (the two modes, activation fast paths, mid-flow activation guards, selector-routable rules/docs frontmatter, and `rules:lint`); `context:select` and `rules:lint` added to the CLI reference; per-agent notes for squad (investigation opt-out + create-phase genome pass), copywriter (INDEX-driven genome menu + binding operational sections), genome and the profiler pipeline (operational-method layer), and activation fast-path cross-links on briefing/sheldon.
28
+
29
+ ## [1.29.0] - 2026-06-11
30
+
31
+ ### Added
32
+ - **Activation-only fast paths across the entry agents.** `@briefing`, `@product`, `@sheldon`, `@analyst`, and `@copywriter` join `@deyvin`: bare activation loads only foundation context (plus registry frontmatter / filename listings where the agent needs a menu), presents the starting options, and stops. Required inputs are now declared with the step that needs each item — never all upfront. `@product` was compressed to fit the fast path inside its 25KB kernel budget (24,999 bytes).
33
+ - **Activation guards on the mid-flow agents.** `@architect`, `@ux-ui`, `@pm`, `@qa`, `@orchestrator`, `@scope-check`, and `@discovery-design-doc`: activation without a feature slug reads foundation context only, reports the current stage, asks which feature to work on, and stops. `@qa`'s legacy eager loading section (the "design governance" variant) is replaced by `context:select`-backed Context loading modes. `@validator` heading aligned (its strict sandbox semantics were already the tightest loader in the framework).
34
+ - **The eager rules/docs loading section is retired framework-wide.** `@tester`, `@squad`, `@site-forge`, and `@discover` replace "Project rules, docs & design docs" with on-demand Context loading modes; gateways (CLAUDE.md/AGENTS.md) describe rule loading as on-demand; a contract test bans every variant of the eager section in every template agent.
35
+ - **Selector-routable rules and docs.** All template rules carry routing frontmatter (`modes`, `task_types`, `triggers`, `paths`, `load_tier`) — description-only rules were selector-invisible (+20 < threshold 30). 41 template docs (squad, sheldon, dev, deyvin, pentester, tester, dossier, site-forge, governance) gain the same routing fields. `context:select` activation-only mode generalized to all workflow agents (per-agent foundation allowlist).
36
+ - **`aioson rules:lint [--docs] [--strict] [--json]`** — flags selector-invisible rules (and docs with `--docs`), missing required fields, and suggests routing metadata. `--strict` exits 1 on warnings for CI. Template ships 67/67 selector-visible files, locked by test.
37
+ - **Squad creation: investigation is opt-out and genomes enter the loop.** Tier-2 domains run `@orache` by default; tier-3 with no sourceDocs gets an announced Quick Scan. New `squad-create` Step 5.5 (genome pass): planned genomes are reused or generated via `@genome` and bound (manifest `genomes`+`genomeBindings`, executor `## Active genomes`, `squad.md`); pending bindings are queued with `status: pending` and surfaced — never silently empty.
38
+ - **Operational-method layer in the persona pipeline.** Benchmarked against practitioner source prompts (Stefan Georgi / RMBC): `@profiler-enricher` Module 9 extracts the executable method (procedure, output structure, style metrics, prohibitions, delivery checklist) from evidence; `@profiler-forge` emits it as five required Genome 3.0 sections; `@genome` treats a missing `## Operating Procedure` on function/practitioner-persona genomes as a generation defect; genome-bindings propagate Prohibitions → executor Hard constraints, Delivery Checklist → squad checklists, Operating Procedure → Response pattern.
39
+ - **`@copywriter` genome menu via `INDEX.md`.** New Step G2.4 discovers all installed genomes (masters, personas, domain, brand-voice) through `.aioson/genomes/INDEX.md` with its audience/output-type selection guides; the hardcoded master list becomes the index-absent fallback. The menu serves marketing pages, content, site copy, and system/UI microcopy. Operational sections of a selected genome are binding for the piece (procedure, prohibitions, style metrics, delivery checklist).
40
+
41
+ ### Changed
42
+ - `@orache` squad rules load by frontmatter match instead of wholesale scan; `@squad` decision-gating and `@sheldon` mining restricted to selected context; `@sheldon` brain index loads after PRD selection instead of on activation.
43
+
44
+ ### Tests
45
+ - Contract suites for every fast path/guard (tokens + section ordering), per-agent activation-only selection, rules/docs routing visibility (67/67), `rules:lint` behavior, squad investigation/genome-pass tokens, operational-method tokens across the pipeline, and copywriter INDEX discovery. Full suite green (3227 pass).
46
+
5
47
  ## [1.28.0] - 2026-06-11
6
48
 
7
49
  ### Added
package/README.md CHANGED
@@ -246,7 +246,7 @@ aioson context:monitor # ASCII bars, warning/critical detection
246
246
  ```
247
247
  ```
248
248
  Context usage ████████████░░░░ 73% ⚠ approaching threshold (SMALL: 65%)
249
- Agents recommend /clear before next phase
249
+ Agents recommend /compact before the next same-feature phase; /clear is reserved for hard resets
250
250
  ```
251
251
 
252
252
  **FTS5 Search Index** — find anything across all your project artifacts in milliseconds:
@@ -730,10 +730,12 @@ aioson intake:ask [path] --agent=<agent> --schema=<questions.json> [--out=<answe
730
730
 
731
731
  ```bash
732
732
  aioson preflight [path] [--json]
733
- aioson classify [path] [--json]
734
- aioson gate:check [path] --gate=A|B|C|D [--json]
735
- aioson artifact:validate [path] --feature=<slug> [--json]
736
- aioson detect:test-runner [path] [--json]
733
+ aioson classify [path] [--json]
734
+ aioson gate:check [path] --gate=A|B|C|D [--json]
735
+ aioson artifact:validate [path] --feature=<slug> [--json]
736
+ aioson ac:test-audit [path] --feature=<slug> [--json]
737
+ aioson sdd:benchmark [path] --feature=<slug> [--json]
738
+ aioson detect:test-runner [path] [--json]
737
739
  aioson agent:audit [path] [--json]
738
740
  aioson brief:gen [path] --feature=<slug> [--json]
739
741
  aioson verify:gate [path] --feature=<slug> [--json]
@@ -677,23 +677,53 @@ aioson harness:check . --slug=checkout
677
677
  # Run only a subset of criteria
678
678
  aioson harness:check . --slug=checkout --criteria=C1,C3
679
679
 
680
- # Custom timeout and JSON output (exit 0 = pass)
681
- aioson harness:check . --slug=checkout --timeout=120000 --json
680
+ # Custom timeout and JSON output (exit 0 = pass)
681
+ aioson harness:check . --slug=checkout --timeout=120000 --json
682
+
683
+ # Strict mode: binary criteria without verification block the result
684
+ aioson harness:check . --slug=checkout --strict
682
685
  ```
683
686
 
684
687
  **Options:**
685
688
  - `--slug=<feature>` — feature slug matching the harness contract. If omitted, the active contract is auto-discovered.
686
- - `--criteria=C1,C2` — run only the listed criteria instead of all verifiable ones.
687
- - `--timeout=<ms>` — per-criterion timeout override.
688
- - `--json` — structured output; exit code propagated.
689
+ - `--criteria=C1,C2` — run only the listed criteria instead of all verifiable ones.
690
+ - `--timeout=<ms>` — per-criterion timeout override.
691
+ - `--strict` — fail when binary criteria lack executable `verification` or no executable criterion exists.
692
+ - `--json` — structured output; exit code propagated.
689
693
 
690
694
  **What it does:** the `verification` field is authored per criterion by `@sheldon` for every mechanically-checkable `binary: true` criterion (prefer the project test runner; deterministic; cross-platform; exit 0 = pass). `harness:check` is the standalone deterministic verification of those criteria — it never touches the circuit-breaker state (that stays exclusive to `harness:validate`/`apply-validation`). Legacy contracts without `verification` remain valid; `validateContract` only emits an advisory **warning** for `binary: true` criteria lacking it. `@validator` runs `harness:check` first and copies the exit-code verdicts verbatim into `results[].passed`, LLM-judging only the criteria without `verification`.
691
695
 
692
- See [Executable verification](./executable-verification.md) for the full theme.
693
-
694
- ---
695
-
696
- ## harness:validate
696
+ See [Executable verification](./executable-verification.md) for the full theme.
697
+
698
+ ---
699
+
700
+ ## ac:test-audit
701
+
702
+ Map declared acceptance criteria to deterministic test evidence.
703
+
704
+ ```bash
705
+ aioson ac:test-audit . --feature=checkout
706
+ aioson ac:test-audit . --feature=checkout --json
707
+ ```
708
+
709
+ **What it does:** extracts `AC-*` IDs from `requirements-{slug}.md`, `prd-{slug}.md`, and `conformance-{slug}.yaml`, then checks whether each ID appears in a test file or an executable harness criterion. Gate D treats missing evidence as blocking when ACs are declared.
710
+
711
+ ---
712
+
713
+ ## sdd:benchmark
714
+
715
+ Generate a deterministic SDD quality snapshot for a feature.
716
+
717
+ ```bash
718
+ aioson sdd:benchmark . --feature=checkout
719
+ aioson sdd:benchmark . --feature=checkout --strict --json
720
+ ```
721
+
722
+ **What it does:** combines artifact presence, `spec:analyze`, and `ac:test-audit` into a reproducible score and writes `.aioson/context/retro/sdd-benchmark-{slug}.md`.
723
+
724
+ ---
725
+
726
+ ## harness:validate
697
727
 
698
728
  Generate the `validator-prompt.txt` for the binary success contract and append a self-contained **review payload** so the validator can judge in a fresh, isolated context. Consumes the verdict back through the circuit breaker.
699
729
 
@@ -70,6 +70,8 @@ Você > Todos.
70
70
  4. `.aioson/context/prd*.md` e `prds/*.md` — evita duplicar trabalho já comprometido.
71
71
  5. Web search quando há premissas que precisam de validação externa.
72
72
 
73
+ > **Fast path de ativação (v1.29.0):** ativar `@briefing` "seco", sem nomear plano ou tarefa, carrega **só** o `project.context.md`, o frontmatter do registro e a *listagem de nomes* de `plans/` — apresenta o menu e para. O conteúdo dos planos e PRDs acima entra só no passo que os usa. Veja [Carregamento seletivo de contexto](../5-referencia/memoria-e-contexto.md#carregamento-seletivo-de-contexto-v1290).
74
+
73
75
  ## Handoff típico
74
76
 
75
77
  - **Vem de:** você, com anotações em `plans/` ou uma ideia conversacional.
@@ -53,6 +53,8 @@ A grande diferença em relação a um "prompt de copy genérico" é que ele tem
53
53
 
54
54
  ## Selecionar a mente do copywriter (genomes)
55
55
 
56
+ > **Menu via INDEX (v1.29.0):** a descoberta de genomes agora lê o `.aioson/genomes/INDEX.md` — o registro de **todos** os genomes instalados (mestres, personas, domínio, brand-voice), com guias de seleção por audiência e por tipo de output. O menu aparece quando você pergunta "quais genomes tenho", na ativação seca, ou quando mais de um genome serve para a peça. Vale para qualquer entrega: páginas de marketing, conteúdo, copy de site e **microcopy de sistema** (botões, empty states, onboarding, mensagens de erro). Quando o genome escolhido tem seções operacionais (geradas pelo pipeline de persona — `## Operating Procedure`, `## Prohibitions`, `## Style Metrics`, `## Delivery Checklist`), elas são **vinculantes** para a peça: o procedimento dirige o fluxo, as proibições viram hard constraints e o checklist roda na validação final.
57
+
56
58
  Quando há múltiplos genomes de mestres instalados, o `@copywriter` pergunta qual perspectiva aplicar. **8 mestres disponíveis** organizados em 2 hemisférios:
57
59
 
58
60
  ### Mestres universais (US, em inglês — adaptam-se ao idioma do projeto)
@@ -105,6 +105,7 @@ aioson system:publish --type=genome --slug=<slug>
105
105
  ## Detalhes recentes
106
106
 
107
107
  - **Genome 4.0 (2026):** novos campos `anchor_prompt`, `relations`, `hexaco_h`, e `trait_interactions` — o genome passou a modelar como traços interagem entre si, não apenas listá-los isoladamente
108
+ - **Camada de método operacional (v1.29.0):** genomes de função e de persona-praticante agora carregam **o que a pessoa FAZ**, não só quem ela é. Cinco seções obrigatórias — `## Operating Procedure` (o método em passos executáveis, ex: RMBC), `## Output Structure`, `## Style Metrics`, `## Prohibitions`, `## Delivery Checklist` — extraídas das evidências pelo pipeline de persona. Um genome de praticante sem `## Operating Procedure` simula opiniões, não trabalho, e é tratado como defeito de geração. Ao vincular num squad, essas seções se propagam: proibições viram hard constraints do executor, o checklist vira checklist do squad, e o procedimento dirige o padrão de resposta.
108
109
 
109
110
  ---
110
111
 
@@ -117,7 +117,7 @@ aioson workflow:status .
117
117
  **Feature MEDIUM (pré-dev):**
118
118
  - **Vem de:** `@discovery-design-doc`
119
119
  - **Produz:** `implementation-plan-{slug}.md` (Gate C)
120
- - **Vai para:** STOP — desenvolvedor faz `/clear` e ativa `/dev`
120
+ - **Vai para:** STOP — desenvolvedor faz `/compact` e ativa `/dev` quando continuar a mesma feature; usa `/clear` só para reset forte
121
121
 
122
122
  **Projeto MEDIUM (modo completo):**
123
123
  - **Vem de:** `@ux-ui`
@@ -71,6 +71,8 @@ Você > proceed
71
71
  └── enriched-profile.md ← saída desta etapa
72
72
  ```
73
73
 
74
+ > **Método operacional (v1.29.0):** além do perfil psicométrico (DISC, Big Five, etc.), o enricher extrai das evidências o **método executável** da pessoa — procedimento em passos, estrutura de output, métricas de estilo, proibições e checklist de entrega (a seção `## Operational Method` do perfil). É o que faz o genome simular *o que a pessoa faz*, não só suas opiniões. Quando a fonte não documenta um método passo a passo, ele é reconstruído e marcado `inferred` — nunca inventado.
75
+
74
76
  ---
75
77
 
76
78
  ## Como ele lê seu projeto
@@ -71,6 +71,8 @@ Você > 3
71
71
  .aioson/genomes/{slug}-advisor.md ← advisor como prompt utilizável
72
72
  ```
73
73
 
74
+ > **Seções operacionais (v1.29.0):** o forge emite o método capturado pelo enricher como cinco seções obrigatórias no genome — `## Operating Procedure`, `## Output Structure`, `## Style Metrics`, `## Prohibitions`, `## Delivery Checklist`. Um genome de persona-praticante sem `## Operating Procedure` é tratado como defeito de geração. Veja [genome.md](./genome.md) para como essas seções se propagam ao vincular num squad.
75
+
74
76
  ---
75
77
 
76
78
  ## Como ele lê seu projeto
@@ -80,6 +80,8 @@ O `@sheldon` decide entre **enriquecer in-place** ou **criar plano faseado** dep
80
80
  5. `.aioson/briefings/{slug}/briefings.md` — se `briefing_source` está no PRD.
81
81
  6. `plans/*.md` e `prds/*.md` — fontes de pesquisa pré-produção do usuário.
82
82
 
83
+ > **Fast path de ativação (v1.29.0):** ativar `@sheldon` "seco", sem PRD/slug, carrega **só** o `project.context.md`, a listagem de nomes dos `prd*.md` e a tabela `features.md` — apresenta a lista de PRDs para seleção e para. O conteúdo do PRD e o índice de brains entram só depois da escolha do alvo. Veja [Carregamento seletivo de contexto](../5-referencia/memoria-e-contexto.md#carregamento-seletivo-de-contexto-v1290).
84
+
83
85
  ## Handoff típico
84
86
 
85
87
  - **Vem de:** `@product` (PRD gerado) — pode ser ativado N vezes antes de ir adiante.
@@ -93,16 +93,16 @@ Antes de criar, o `@squad` lê:
93
93
 
94
94
  ## Comandos CLI relacionados
95
95
 
96
- ```bash
97
- # Criar squad via CLI
98
- aioson squad:scaffold . --slug=<slug> --name="Meu Squad" --mode=mixed
99
-
100
- # Diagnosticar squad existente
101
- aioson squad:doctor . --squad=<slug>
102
-
103
- # Publicar no aioson.com
104
- aioson system:publish --type=squad --slug=<slug>
105
- ```
96
+ ```bash
97
+ # Criar squad via CLI
98
+ aioson squad:scaffold . --slug=<slug> --name="Meu Squad" --mode=mixed
99
+
100
+ # Diagnosticar squad existente
101
+ aioson squad:doctor . --squad=<slug>
102
+
103
+ # Publicar no aioson.com
104
+ aioson system:publish --type=squad --slug=<slug>
105
+ ```
106
106
 
107
107
  ---
108
108
 
@@ -117,6 +117,8 @@ aioson system:publish --type=squad --slug=<slug>
117
117
 
118
118
  - **domain breadth (Mai/2026):** executores que antes recusavam pedidos adjacentes ao seu escopo agora respondem com mais amplitude contextual
119
119
  - **squad refresh:** `@squad refresh <slug>` atualiza um squad existente com nova investigação sem recriar do zero
120
+ - **investigação opt-out (v1.29.0):** a investigação de domínio com `@orache` agora roda **por padrão** — completa para domínios regulados/especializados, Quick Scan (1–2 rodadas) para domínios comuns sem fontes. É o que aterra os executores em frameworks/vocabulário reais em vez de priors do modelo (a causa nº1 de executor raso). O `@squad` anuncia o scan em vez de perguntar; diga "pula" para dispensar.
121
+ - **genome pass na criação (v1.29.0):** os genomes planejados por executor são gerados e vinculados **durante** a criação do squad — não mais como passo manual depois. Um squad de domínio especializado nunca sai com `## Active genomes` vazio: ou vincula o genome, ou entrega o comando `@genome` exato pendente no resumo da criação. Para re-aterrar executores rasos de squads antigos, rode `@squad refresh <slug>`.
120
122
 
121
123
  ---
122
124
 
@@ -33,7 +33,7 @@ Sem essa flag (ou com `false`), o comportamento padrão é handoff manual — ca
33
33
  STOP — human entra com /dev
34
34
  ```
35
35
 
36
- A cadeia pré-dev **sempre para antes do primeiro `@dev`**. O desenvolvedor faz `/clear` (limpa o contexto) e inicia a implementação numa janela de contexto fresca — `@dev` é pesado e se beneficia de contexto limpo.
36
+ A cadeia pré-dev **sempre para antes do primeiro `@dev`**. O desenvolvedor faz `/compact` quando continua a mesma feature e inicia a implementação a partir do pacote/checkpoint de contexto — `@dev` é pesado e se beneficia de um handoff operacional compacto. Use `/clear` apenas para reset forte, troca de feature, contexto poluído ou reset sensível a segurança.
37
37
 
38
38
  ### Segmento 2 — Ciclo de revisão pós-dev (hub = @qa)
39
39
 
@@ -87,7 +87,7 @@ O autopilot interrompe a cadeia e emite o handoff manual normal quando:
87
87
  3. **Cap de correções atingido** — ciclo `@qa` ↔ `@dev` limitado a 2 rounds.
88
88
  4. **Finding crítico de segurança** — keywords auth/secret/credential/session/password/token/PII detectados pelo gate de segurança do `@qa` → STOP, requer intervenção humana.
89
89
  5. **Verdict não passou** — `@scope-check` não aprovado, `@architect` Gate B bloqueado, `@discovery-design-doc` readiness bloqueado, `@pm` Gate C bloqueado, `@validator` FAIL sem caminho seguro → STOP, roteamento manual.
90
- 6. **Orçamento de contexto** — uso ≥ `context_warning_threshold`: grava checkpoint em `last-handoff.json`, STOP, recomenda `/clear`. A próxima sessão reentra no autopilot automaticamente.
90
+ 6. **Orçamento de contexto** — uso ≥ `context_warning_threshold`: grava checkpoint em `last-handoff.json`, STOP, recomenda `/compact` para continuidade na mesma feature. A próxima sessão reentra no autopilot automaticamente. Use `/clear` apenas para reset forte, troca de feature, contexto poluído ou reset sensível a segurança.
91
91
  7. **Ambiguidade** — estado do workflow indisponível ou qualquer decisão real requer input humano → STOP.
92
92
 
93
93
  O usuário pode interromper a qualquer momento com Ctrl+C. O autopilot nunca retenta uma invocação interrompida.
@@ -130,9 +130,9 @@ Você > /analyst (start)
130
130
  @scope-check → pre-dev check → autopilot: invocando @architect
131
131
  @architect → Gate B PASS → autopilot: invocando @discovery-design-doc
132
132
  @discovery-design-doc → readiness ok → autopilot: invocando @pm (MEDIUM)
133
- @pm → Gate C PASS → STOP — "Recomendo /clear e /dev"
133
+ @pm → Gate C PASS → STOP — "Recomendo /compact e /dev"
134
134
 
135
- Você > /clear
135
+ Você > /compact
136
136
  Você > /dev (implementação manual — contexto limpo)
137
137
 
138
138
  @dev → testes ok → autopilot retoma: invocando @qa
@@ -150,6 +150,8 @@
150
150
  | `skill:list` | Lista skills instaladas em `.aioson/installed-skills/` | Quando quer saber quais skills estão ativas |
151
151
  | `skill:remove` | Remove skill instalada e limpa diretórios de ferramentas | Quando uma skill não é mais necessária |
152
152
  | `compress:agents` | Comprime arquivos de instrução dos agentes para reduzir consumo de tokens por sessão. Modo estrutural (gratuito) ou semântico via LLM (`--llm`). Salva backup automático em `.original.md`. Aceita `--agent`, `--rules`, `--dry-run`, `--restore`. | Quando quer reduzir custo de API sem alterar nenhuma lógica. Veja [compress:agents](./compress-agents.md) |
153
+ | `context:select` | Seleciona sob demanda só as regras/docs/design-docs relevantes para a tarefa atual, por agente e modo (`--mode=planning\|executing`). Aceita `--agent`, `--task`, `--paths`, `--feature`, `--json`. | É o motor por trás dos *fast paths* e *activation guards* — os agentes o invocam para carregar só o que a task exige. Veja [Memória e Contexto](./memoria-e-contexto.md) |
154
+ | `rules:lint` | Acusa regras (e docs, com `--docs`) "invisíveis ao seletor" — sem `task_types`/`triggers`/`paths` e sem `load_tier: always`, que o `context:select` nunca carregaria sob demanda. Aceita `--docs`, `--strict` (sai com código 1 em CI), `--json`. | Depois de criar/editar regras ou docs em `.aioson/rules/` ou `.aioson/docs/` — confirma que o seletor consegue roteá-los. Veja [Memória e Contexto](./memoria-e-contexto.md) |
153
155
  | `design-hybrid:options` | Abre um seletor visual com setas + espaço para montar um preset temporário de variações de design | Quando quer alimentar a `design-hybrid-forge` com direções mais extravagantes, clássicas, animadas ou com CSS avançado. Usa o locale do projeto automaticamente e aceita `--locale` como override; com `--advanced` libera um 3º modificador. Veja [design-hybrid-forge](../4-agentes/design-hybrid-forge.md) |
154
156
 
155
157
  ### Cloud
@@ -224,8 +226,10 @@ Scripts determinísticos que movem verificações de estado, validação de arte
224
226
  | `feature:archive` | Move artefatos de uma feature `done` para `.aioson/context/done/{slug}/` e atualiza o manifest | Chamado pelo `feature:close` automaticamente; também disponível para retroativo com `--dry-run` e `--restore` |
225
227
  | `feature:export` | **Copia** todos os artefatos de uma feature para um `--out` limpo, sem mexer na origem; gera `INDEX.md` | Exportar specs para analisar fora, entregar a cliente, ou usar o AIOSON só como gerador de specs. Veja [feature-export.md](./feature-export.md) |
226
228
  | `gate:check` | Valida pré-requisitos e artefatos de um phase gate (A/B/C/D); retorna PASS ou BLOCKED | Antes de avançar para o próximo agente |
227
- | `artifact:validate` | Verifica a cadeia completa de artefatos de uma feature (PRD → spec → plano → conformance) | A qualquer momento para checar completude |
228
- | `spec:analyze` | Irmão de **conteúdo** do `artifact:validate`: consistência cruzada entre os artefatos (rastreabilidade REQ/AC, staleness, readiness, sanidade do contrato, vínculo AC→contrato, overlap de waves) antes do gate de execução | No preflight do `@scope-check` errors viram blockers, warnings viram evidência de drift |
229
+ | `artifact:validate` | Verifica a cadeia completa de artefatos de uma feature (PRD → spec → plano → conformance) | A qualquer momento para checar completude |
230
+ | `ac:test-audit` | Mapeia cada `AC-*` declarado em PRD/requisitos/conformance para evidência em testes ou critério executável do harness | Antes do Gate D; falha quando algum AC não tem prova de teste |
231
+ | `sdd:benchmark` | Gera score determinístico de SDD usando cadeia de artefatos, `spec:analyze` e `ac:test-audit`; salva relatório em `.aioson/context/retro/` | Para medir a qualidade do harness sem depender de julgamento solto |
232
+ | `spec:analyze` | Irmão de **conteúdo** do `artifact:validate`: consistência cruzada entre os artefatos (rastreabilidade REQ/AC, staleness, readiness, sanidade do contrato, vínculo AC→contrato, overlap de waves) antes do gate de execução | No preflight do `@scope-check` — errors viram blockers, warnings viram evidência de drift |
229
233
  | `forge:compile` | **Lane B:** compila os artefatos de uma feature MEDIUM num `forge-run.workflow.js` auditável e versionável (parallel por Wave → convergência no `harness:check` → revisão adversarial → validador fresh-context) | Quando quer execução compilada e reproduzível via `@forge-run`; nunca roda `feature:close`/publish |
230
234
  | `workflow:execute` | Monta e executa o plano de agentes baseado na classificação; aceita `--dry-run` e `--start-from` | Para orquestrar features sem o dashboard |
231
235
  | `runner:run` | Executa uma tarefa ou worker diretamente pelo runner | Quando quer executar fora do loop principal de sessão |
@@ -985,7 +989,7 @@ O manifest em `.aioson/context/done/MANIFEST.md` registra todas as features arqu
985
989
  # Verificar se está no safe zone (< 60%), warning (60–80%) ou critical (≥ 80%)
986
990
  aioson context:monitor . --budget=80000 --tokens=52000
987
991
  # ⚠ Context: 52,000 tokens (65%) — WARNING
988
- # Suggestion: /clear before next agent activation
992
+ # Suggestion: /compact before next agent activation; use /clear only for a hard reset
989
993
 
990
994
  # Verificar com output JSON para integrar em scripts
991
995
  aioson context:monitor . --budget=80000 --tokens=67000 --json
@@ -52,7 +52,7 @@ O PRD produzido pelo @product é o **documento base vivo** — nenhum agente dow
52
52
  - `sheldon-enrichment-{slug}.md` (ou `sheldon-enrichment.md`) em `.aioson/context/` — log de cada rodada, decisões de gray areas, score e readiness
53
53
 
54
54
  **No Modo C (validação completa)**, gera adicionalmente:
55
- - `sheldon-validation.md` — relatório de auditoria com gate por agente (🟢/🟡/🔴)
55
+ - `sheldon-validation-{slug}.md` (projeto: `sheldon-validation.md`) — relatório de auditoria com gate por agente (🟢/🟡/🔴)
56
56
  - `.aioson/plans/{slug}/checklist.md` — checklist de implementação por fase
57
57
 
58
58
  **Pesquisas web (RF-WEB)** ficam em:
@@ -229,13 +229,13 @@ aioson context:monitor . --budget=80000 --tokens=52000
229
229
 
230
230
  ```
231
231
  ⚠ Context: 52,000 tokens (65%) — WARNING
232
- Suggestion: /clear before next agent activation
232
+ Suggestion: /compact before next agent activation; use /clear only for a hard reset
233
233
  ```
234
234
 
235
235
  | Zona | Faixa | Ação |
236
236
  |---|---|---|
237
237
  | safe | < 60% | Continuar normalmente |
238
- | warning | 60–80% | Planejar `/clear` antes do próximo agente |
238
+ | warning | 60–80% | Planejar `/compact` antes do próximo agente; usar `/clear` só para reset forte |
239
239
  | critical | ≥ 80% | Rodar `context:health` e reduzir carga |
240
240
 
241
241
  **Thresholds por classificação** (para automonitoramento dos agentes, configurado em `.aioson/config.md`):
@@ -260,6 +260,66 @@ Quando a zona é `warning` ou `critical`, um evento é automaticamente registrad
260
260
 
261
261
  ---
262
262
 
263
+ ## Carregamento seletivo de contexto (v1.29.0+)
264
+
265
+ As 3 camadas acima resolvem *onde* a memória mora. Esta seção resolve um problema diferente: *quando* cada arquivo entra na janela de contexto. Antes, ativar um agente carregava de tudo — regras, docs, design-docs, specs — logo de cara, mesmo que a tarefa não precisasse. A partir da v1.29.0 isso é seletivo: o agente carrega só o que a task atual exige, e o resto entra sob demanda.
266
+
267
+ ### Os dois modos
268
+
269
+ Todo agente que mexe com contexto opera em dois modos explícitos, via `context:select`:
270
+
271
+ | Modo | Quando | O que carrega |
272
+ |---|---|---|
273
+ | **PLANNING** | Inspecionar status, listar fontes, decidir o próximo passo | Só fundação + frontmatter; nunca pastas inteiras de regras/docs |
274
+ | **EXECUTING** | Antes de escrever/editar um artefato ou código | Só as regras/docs/design-docs selecionados para os arquivos em questão |
275
+
276
+ ```bash
277
+ aioson context:select . --agent=dev --mode=planning --task="<tarefa>" --paths="<arquivos conhecidos>"
278
+ aioson context:select . --agent=dev --mode=executing --task="<tarefa>" --paths="<arquivos a tocar>"
279
+ ```
280
+
281
+ A saída traz a linha **Boundary**: *"carregue só os arquivos selecionados até a task, o modo, a feature ou os paths mudarem"*. Ou seja: quando o assunto muda no meio da conversa, o agente roda o seletor de novo com a task nova — não fica preso ao que carregou na entrada.
282
+
283
+ ### Fast path de ativação (agentes de entrada)
284
+
285
+ Ativar um agente "seco" — `@briefing`, `@product`, `@sheldon`, `@analyst`, `@copywriter` (e `@deyvin`) sem nomear feature/tarefa — carrega **só o contexto de fundação** (`project.context.md` + `project-pulse.md`, mais o registro/listagem que o agente precisa para o menu), apresenta as opções de início e para. Nada de PRDs, dossiers, regras ou skills antes de você dizer o que fazer.
286
+
287
+ ### Guarda de ativação (agentes de meio de fluxo)
288
+
289
+ `@architect`, `@ux-ui`, `@pm`, `@qa`, `@orchestrator`, `@scope-check` e `@discovery-design-doc` ganharam uma **guarda de ativação**: ativados sem slug de feature, leem só a fundação, reportam o estágio atual do workflow, perguntam qual feature trabalhar e param. Os artefatos pesados (specs, requirements, arquitetura) entram só na etapa que os usa.
290
+
291
+ ### Regras e docs roteáveis pelo seletor
292
+
293
+ Para o `context:select` conseguir escolher uma regra ou doc, o arquivo precisa de **frontmatter de roteamento** — senão ele é "invisível ao seletor" e nunca é carregado sob demanda:
294
+
295
+ ```yaml
296
+ ---
297
+ description: "..."
298
+ agents: [dev, qa] # quem pode carregar
299
+ modes: [planning, executing]
300
+ task_types: [payment, billing]
301
+ triggers: [money, pricing, checkout] # palavras/frases batidas contra a task
302
+ paths: [src/billing/**] # globs batidos contra os arquivos tocados
303
+ load_tier: trigger # trigger (padrão) | always | justified
304
+ ---
305
+ ```
306
+
307
+ Uma regra só com `description` (sem `task_types`/`triggers`/`paths` e sem `load_tier: always`) pontua abaixo do corte e o seletor nunca a carrega. Para auditar isso:
308
+
309
+ ```bash
310
+ aioson rules:lint . # acusa regras invisíveis ao seletor
311
+ aioson rules:lint . --docs # inclui .aioson/docs/ na varredura
312
+ aioson rules:lint . --strict # sai com código 1 se houver avisos (para CI)
313
+ ```
314
+
315
+ > **Depois de `aioson update` em um projeto:** rode `aioson rules:lint . --docs`. Ele aponta exatamente quais regras/docs locais seus ficaram sem metadata de roteamento e precisam de `triggers`/`task_types`/`paths` para o seletor enxergá-los.
316
+
317
+ ### Por que isso reduz tokens
318
+
319
+ Lazy-loading rende ~10x mais que comprimir prosa: deixar de carregar PRDs/dossiers/regras inteiros na ativação economiza ~10–25k tokens por sessão, contra ~1k de uma compressão de texto. Os dois se somam — o [`compress:agents`](./compress-agents.md) enxuga o arquivo do agente; o carregamento seletivo evita puxar arquivos que a task nem usa.
320
+
321
+ ---
322
+
263
323
  ## Onde tudo vive
264
324
 
265
325
  ```
@@ -69,7 +69,7 @@ aioson context:monitor [path] --budget=<tokens-totais> --tokens=<tokens-atuais>
69
69
  | Zona | Faixa | Ícone | Ação sugerida |
70
70
  |---|---|---|---|
71
71
  | safe | < 60% | ✓ | Continuar normalmente |
72
- | warning | 60–80% | ⚠ | Planejar `/clear` antes do próximo agente |
72
+ | warning | 60–80% | ⚠ | Planejar `/compact` antes do próximo agente; usar `/clear` só para reset forte |
73
73
  | critical | ≥ 80% | ! | Rodar `context:health` e reduzir carga |
74
74
 
75
75
  **Exemplos:**
@@ -82,7 +82,7 @@ aioson context:monitor . --budget=80000 --tokens=28000
82
82
  # Sessão em warning zone
83
83
  aioson context:monitor . --budget=80000 --tokens=52000
84
84
  # ⚠ Context: 52,000 tokens (65%) — WARNING
85
- # Suggestion: /clear before next agent activation
85
+ # Suggestion: /compact before next agent activation; use /clear only for a hard reset
86
86
 
87
87
  # Sessão em critical zone
88
88
  aioson context:monitor . --budget=80000 --tokens=67000
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaimevalasek/aioson",
3
- "version": "1.28.1",
3
+ "version": "1.30.0",
4
4
  "description": "AI operating framework for hyper-personalized software.",
5
5
  "keywords": [
6
6
  "ai",
@@ -46,8 +46,10 @@
46
46
  "ci": "npm run lint && npm test"
47
47
  },
48
48
  "dependencies": {
49
- "archiver": "^8.0.0",
49
+ "archiver": "^7.0.1",
50
50
  "better-sqlite3": "^12.6.2",
51
+ "ignore": "^7.0.5",
52
+ "javascript-obfuscator": "^5.4.3",
51
53
  "terser": "^5.48.0"
52
54
  }
53
55
  }