agentera 3.0.0-dev.4 → 3.0.0-dev.5

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 (118) hide show
  1. package/bundle/.agentera-npx-bundle.json +1 -1
  2. package/bundle/references/cli/agent-ready-state-contract.yaml +5 -5
  3. package/bundle/references/cli/bundle-skill-vocabulary.yaml +1 -1
  4. package/bundle/references/cli/capability-instruction-contract.yaml +98 -57
  5. package/bundle/references/cli/routing-execution-vocabulary.yaml +6 -6
  6. package/bundle/references/cli/update-channels.yaml +17 -2
  7. package/bundle/references/cli/vocabulary-index.yaml +3 -3
  8. package/bundle/references/cli/vocabulary.md +22 -16
  9. package/bundle/registry.json +1 -1
  10. package/bundle/skills/agentera/SKILL.md +38 -21
  11. package/bundle/skills/agentera/agents/dokumentera.toml +1 -1
  12. package/bundle/skills/agentera/agents/hej.toml +1 -1
  13. package/bundle/skills/agentera/agents/inspektera.toml +1 -1
  14. package/bundle/skills/agentera/agents/inspirera.toml +1 -1
  15. package/bundle/skills/agentera/agents/optimera.toml +1 -1
  16. package/bundle/skills/agentera/agents/orkestrera.toml +1 -1
  17. package/bundle/skills/agentera/agents/planera.toml +1 -1
  18. package/bundle/skills/agentera/agents/profilera.toml +1 -1
  19. package/bundle/skills/agentera/agents/realisera.toml +1 -1
  20. package/bundle/skills/agentera/agents/resonera.toml +1 -1
  21. package/bundle/skills/agentera/agents/visionera.toml +1 -1
  22. package/bundle/skills/agentera/agents/visualisera.toml +1 -1
  23. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +26 -13
  24. package/bundle/skills/agentera/capability_schema_contract.yaml +33 -14
  25. package/bundle/skills/agentera/references/contract.md +2 -2
  26. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +1 -1
  27. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +15 -36
  28. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +14 -0
  29. package/bundle/skills/hej/SKILL.md +1 -1
  30. package/dist/capabilities/dokumentera/instructions.js +6 -0
  31. package/dist/capabilities/dokumentera/instructions.js.map +1 -0
  32. package/dist/capabilities/hej/instructions.js +6 -0
  33. package/dist/capabilities/hej/instructions.js.map +1 -0
  34. package/dist/capabilities/index.js +38 -0
  35. package/dist/capabilities/index.js.map +1 -0
  36. package/dist/capabilities/inspektera/instructions.js +6 -0
  37. package/dist/capabilities/inspektera/instructions.js.map +1 -0
  38. package/dist/capabilities/inspirera/instructions.js +6 -0
  39. package/dist/capabilities/inspirera/instructions.js.map +1 -0
  40. package/dist/capabilities/optimera/instructions.js +6 -0
  41. package/dist/capabilities/optimera/instructions.js.map +1 -0
  42. package/dist/capabilities/orkestrera/instructions.js +6 -0
  43. package/dist/capabilities/orkestrera/instructions.js.map +1 -0
  44. package/dist/capabilities/planera/instructions.js +6 -0
  45. package/dist/capabilities/planera/instructions.js.map +1 -0
  46. package/dist/capabilities/profilera/instructions.js +6 -0
  47. package/dist/capabilities/profilera/instructions.js.map +1 -0
  48. package/dist/capabilities/realisera/instructions.js +6 -0
  49. package/dist/capabilities/realisera/instructions.js.map +1 -0
  50. package/dist/capabilities/resonera/instructions.js +6 -0
  51. package/dist/capabilities/resonera/instructions.js.map +1 -0
  52. package/dist/capabilities/visionera/instructions.js +6 -0
  53. package/dist/capabilities/visionera/instructions.js.map +1 -0
  54. package/dist/capabilities/visualisera/instructions.js +6 -0
  55. package/dist/capabilities/visualisera/instructions.js.map +1 -0
  56. package/dist/cli/capabilityContext.js +92 -26
  57. package/dist/cli/capabilityContext.js.map +1 -1
  58. package/dist/cli/commands/capability.js +1 -8
  59. package/dist/cli/commands/capability.js.map +1 -1
  60. package/dist/cli/commands/doctor.js +14 -2
  61. package/dist/cli/commands/doctor.js.map +1 -1
  62. package/dist/cli/commands/state.js +22 -11
  63. package/dist/cli/commands/state.js.map +1 -1
  64. package/dist/cli/commands/validate.js +12 -2
  65. package/dist/cli/commands/validate.js.map +1 -1
  66. package/dist/cli/dispatch.js +470 -172
  67. package/dist/cli/dispatch.js.map +1 -1
  68. package/dist/cli/errors.js +53 -0
  69. package/dist/cli/errors.js.map +1 -0
  70. package/dist/cli/help.js +1 -1
  71. package/dist/cli/help.js.map +1 -1
  72. package/dist/cli/orientation.js +9 -6
  73. package/dist/cli/orientation.js.map +1 -1
  74. package/dist/cli/stateQuery.js +7 -0
  75. package/dist/cli/stateQuery.js.map +1 -1
  76. package/dist/cli/todoMarkdown.js +33 -0
  77. package/dist/cli/todoMarkdown.js.map +1 -0
  78. package/dist/hooks/common.js +0 -2
  79. package/dist/hooks/common.js.map +1 -1
  80. package/dist/hooks/validateArtifact.js +10 -8
  81. package/dist/hooks/validateArtifact.js.map +1 -1
  82. package/dist/registries/capabilityContract.js +12 -11
  83. package/dist/registries/capabilityContract.js.map +1 -1
  84. package/dist/registries/evaluatorHandoffContract.js +171 -0
  85. package/dist/registries/evaluatorHandoffContract.js.map +1 -0
  86. package/dist/setup/codex.js +146 -5
  87. package/dist/setup/codex.js.map +1 -1
  88. package/dist/upgrade/migrateArtifactsV1ToV2.js +0 -1
  89. package/dist/upgrade/migrateArtifactsV1ToV2.js.map +1 -1
  90. package/dist/upgrade/nextMajorDoctor.js +121 -0
  91. package/dist/upgrade/nextMajorDoctor.js.map +1 -0
  92. package/dist/upgrade/runtimeMigration.js +19 -3
  93. package/dist/upgrade/runtimeMigration.js.map +1 -1
  94. package/dist/upgrade/versionResolution.js +4 -4
  95. package/dist/upgrade/versionResolution.js.map +1 -1
  96. package/dist/validate/appHomeContract.js +1 -1
  97. package/dist/validate/appHomeContract.js.map +1 -1
  98. package/dist/validate/capability.js +11 -3
  99. package/dist/validate/capability.js.map +1 -1
  100. package/package.json +3 -3
  101. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +0 -428
  102. package/bundle/skills/agentera/capabilities/hej/instructions.md +0 -331
  103. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +0 -514
  104. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +0 -280
  105. package/bundle/skills/agentera/capabilities/optimera/instructions.md +0 -437
  106. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +0 -433
  107. package/bundle/skills/agentera/capabilities/planera/instructions.md +0 -368
  108. package/bundle/skills/agentera/capabilities/profilera/instructions.md +0 -419
  109. package/bundle/skills/agentera/capabilities/realisera/instructions.md +0 -403
  110. package/bundle/skills/agentera/capabilities/resonera/instructions.md +0 -329
  111. package/bundle/skills/agentera/capabilities/visionera/instructions.md +0 -309
  112. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +0 -400
  113. package/dist/cli/commands/backfill.js +0 -84
  114. package/dist/cli/commands/backfill.js.map +0 -1
  115. package/dist/core/git.js +0 -43
  116. package/dist/core/git.js.map +0 -1
  117. package/dist/state/progressCommit.js +0 -289
  118. package/dist/state/progressCommit.js.map +0 -1
@@ -2,5 +2,5 @@
2
2
  name = "realisera"
3
3
  description = "Autonomous development execution."
4
4
  developer_instructions = """
5
- You are the Agentera realisera capability subagent. You have full file write, file edit, and shell execution tools available — use them to implement code changes, run tests, and commit results. Read the authoritative instructions at ${AGENTERA_HOME}/app/skills/agentera/capabilities/realisera/instructions.md when available. For local checkout development, use skills/agentera/capabilities/realisera/instructions.md under the active Agentera source root. Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
5
+ You are the Agentera realisera capability subagent. You have full file write, file edit, and shell execution tools available — use them to implement code changes, run tests, and commit results. Run `agentera prime --context realisera --format json` to fetch the authoritative instructions as a JSON capsule (the `prose` field carries the full Markdown body). Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
6
6
  """
@@ -2,5 +2,5 @@
2
2
  name = "resonera"
3
3
  description = "Structured deliberation and decision support."
4
4
  developer_instructions = """
5
- You are the Agentera resonera capability subagent. You have file write and file edit tools available to create or update files, but shell execution is disabled — do not attempt to run command line tools or scripts. Read the authoritative instructions at ${AGENTERA_HOME}/app/skills/agentera/capabilities/resonera/instructions.md when available. For local checkout development, use skills/agentera/capabilities/resonera/instructions.md under the active Agentera source root. Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
5
+ You are the Agentera resonera capability subagent. You have file write and file edit tools available to create or update files, but shell execution is disabled — do not attempt to run command line tools or scripts. Run `agentera prime --context resonera --format json` to fetch the authoritative instructions as a JSON capsule (the `prose` field carries the full Markdown body). Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
6
6
  """
@@ -2,5 +2,5 @@
2
2
  name = "visionera"
3
3
  description = "Define and refine project direction."
4
4
  developer_instructions = """
5
- You are the Agentera visionera capability subagent. You have file write and file edit tools available to create or update files, but shell execution is disabled — do not attempt to run command line tools or scripts. Read the authoritative instructions at ${AGENTERA_HOME}/app/skills/agentera/capabilities/visionera/instructions.md when available. For local checkout development, use skills/agentera/capabilities/visionera/instructions.md under the active Agentera source root. Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
5
+ You are the Agentera visionera capability subagent. You have file write and file edit tools available to create or update files, but shell execution is disabled — do not attempt to run command line tools or scripts. Run `agentera prime --context visionera --format json` to fetch the authoritative instructions as a JSON capsule (the `prose` field carries the full Markdown body). Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
6
6
  """
@@ -2,5 +2,5 @@
2
2
  name = "visualisera"
3
3
  description = "Visual identity and design systems."
4
4
  developer_instructions = """
5
- You are the Agentera visualisera capability subagent. You have file write and file edit tools available to create or update files, but shell execution is disabled — do not attempt to run command line tools or scripts. Read the authoritative instructions at ${AGENTERA_HOME}/app/skills/agentera/capabilities/visualisera/instructions.md when available. For local checkout development, use skills/agentera/capabilities/visualisera/instructions.md under the active Agentera source root. Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
5
+ You are the Agentera visualisera capability subagent. You have file write and file edit tools available to create or update files, but shell execution is disabled — do not attempt to run command line tools or scripts. Run `agentera prime --context visualisera --format json` to fetch the authoritative instructions as a JSON capsule (the `prose` field carries the full Markdown body). Stay within the dispatched capability task, use the Agentera CLI state seam first, and preserve Agentera artifact safety rails.
6
6
  """
@@ -10,7 +10,7 @@ VALIDATION:
10
10
  source-code read prohibition.
11
11
  severity: critical
12
12
  checks:
13
- - "instructions.md contains NEVER read implementation source code"
13
+ - "orkestrera prose (packages/cli/src/capabilities/orkestrera/instructions.ts) contains NEVER read implementation source code"
14
14
  2:
15
15
  id: V2
16
16
  rule: evaluation_gate_required
@@ -20,7 +20,7 @@ VALIDATION:
20
20
  the prose contains the never-skip-evaluation safety rail.
21
21
  severity: critical
22
22
  checks:
23
- - "instructions.md contains NEVER skip evaluation"
23
+ - "orkestrera prose contains NEVER skip evaluation"
24
24
  3:
25
25
  id: V3
26
26
  rule: retry_budget_enforced
@@ -30,7 +30,7 @@ VALIDATION:
30
30
  is stated in the prose and safety rails.
31
31
  severity: critical
32
32
  checks:
33
- - "instructions.md contains retry budget of 2"
33
+ - "orkestrera prose contains retry budget of 2"
34
34
  4:
35
35
  id: V4
36
36
  rule: exit_marker_required
@@ -40,8 +40,8 @@ VALIDATION:
40
40
  where status is one of EX1-EX4.
41
41
  severity: critical
42
42
  checks:
43
- - "instructions.md contains exit marker with glyph ⎈ (SG12)"
44
- - "instructions.md references exit signals EX1-EX4"
43
+ - "orkestrera prose contains exit marker with glyph ⎈ (SG12)"
44
+ - "orkestrera prose references exit signals EX1-EX4"
45
45
  5:
46
46
  id: V5
47
47
  rule: orchestrator_read_only_artifacts
@@ -66,9 +66,9 @@ VALIDATION:
66
66
  or decisions artifact reads.
67
67
  severity: critical
68
68
  checks:
69
- - "instructions.md contains agentera prime --context orkestrera --format json"
70
- - "instructions.md contains Use the returned `orchestration_context` before raw plan, progress, health, TODO, or decisions artifacts"
71
- - "instructions.md contains If `source_contract.complete_for_orchestration_context` is true, do not read raw plan, progress, health, TODO, or decisions artifacts"
69
+ - "orkestrera prose contains agentera prime --context orkestrera --format json"
70
+ - "orkestrera prose contains Use the returned `orchestration_context` before raw plan, progress, health, TODO, or decisions artifacts"
71
+ - "orkestrera prose contains If `source_contract.complete_for_orchestration_context` is true, do not read raw plan, progress, health, TODO, or decisions artifacts"
72
72
  7:
73
73
  id: V7
74
74
  rule: cli_fallback_before_raw_read
@@ -77,8 +77,8 @@ VALIDATION:
77
77
  routine CLI fallback commands before any last-resort raw artifact read.
78
78
  severity: critical
79
79
  checks:
80
- - "instructions.md contains run the listed routine CLI fallback commands"
81
- - "instructions.md contains Read a raw artifact only as a last-resort diagnostic"
80
+ - "orkestrera prose contains run the listed routine CLI fallback commands"
81
+ - "orkestrera prose contains Read a raw artifact only as a last-resort diagnostic"
82
82
  8:
83
83
  id: V8
84
84
  rule: caveats_preserved_for_evaluation
@@ -88,9 +88,9 @@ VALIDATION:
88
88
  inspektera.
89
89
  severity: critical
90
90
  checks:
91
- - "instructions.md contains compacted decision caveats"
92
- - "instructions.md contains stale health/profile/app caveats"
93
- - "instructions.md contains retry-state provenance"
91
+ - "orkestrera prose contains compacted decision caveats"
92
+ - "orkestrera prose contains stale health/profile/app caveats"
93
+ - "orkestrera prose contains retry-state provenance"
94
94
  9:
95
95
  id: V9
96
96
  rule: satisfaction_authority_boundary
@@ -105,3 +105,16 @@ VALIDATION:
105
105
  - "Provisional satisfaction requires evidence"
106
106
  - "Only the user confirms final satisfaction"
107
107
  - "Missing or compacted satisfaction caveats are preserved"
108
+ 10:
109
+ id: V10
110
+ rule: inspektera_citation_required
111
+ description: >-
112
+ Orkestrera Step 3 Surface 2 inspektera delegation MUST require a
113
+ citation: <file>:<line> (or not-applicable: <reason>) for every WARN and
114
+ FAIL finding, and require verify_command for WARN rows with file:line
115
+ citations. Authority: references/cli/capability-instruction-contract.yaml#evaluator_handoff.
116
+ severity: critical
117
+ checks:
118
+ - "orkestrera prose contains citation: `<file>:<line>` OR `not-applicable: <reason>`"
119
+ - "orkestrera prose contains verify_command"
120
+ - "orkestrera prose contains evaluator_handoff.output_requirements"
@@ -7,15 +7,24 @@
7
7
  # 1. Required groups every capability schema must contain
8
8
  # 2. Entry structure within each group (numbered, stable IDs)
9
9
  # 3. Deprecation protocol (deprecated + replaced_by)
10
- # 4. Directory structure requirements (instructions.md, schemas/)
10
+ # 4. Directory structure requirements (instruction module, schemas/)
11
11
  # 5. Machine-readable validation rules consumed by future contract loaders
12
+ #
13
+ # D65: the per-capability `instructions.md` Markdown file is retired. The
14
+ # behavioral instructions now live at
15
+ # `packages/cli/src/capabilities/<name>/instructions.ts` as a default-exported
16
+ # string constant. The directory requirement below points at the new path;
17
+ # the V1 directory_structure rule's `checks` list and the ARTIFACTS A3 path
18
+ # text follow the same move.
12
19
 
13
20
  meta:
14
21
  name: capability_schema_contract
15
22
  version: "1.0.0"
16
23
  description: >-
17
24
  Defines what a valid capability schema looks like.
18
- A capability directory must contain instructions.md and a schemas/ directory.
25
+ A capability directory must contain schemas/ and the runtime must
26
+ resolve the capability's behavioral instructions from the
27
+ packages/cli/src/capabilities/<name>/instructions.ts module.
19
28
  The union of all YAML files in schemas/ must contain all required groups.
20
29
  capability_type: contract
21
30
  self_referential: true
@@ -68,11 +77,15 @@ GROUP_PREFIXES:
68
77
  EXIT_CONDITIONS: E
69
78
 
70
79
  DIRECTORY_REQUIREMENTS:
71
- instruction_file:
72
- path: instructions.md
80
+ instruction_module:
81
+ path: packages/cli/src/capabilities/<name>/instructions.ts
73
82
  type: file
74
83
  required: true
75
- description: Behavioral instructions the agent reads.
84
+ description: >-
85
+ TypeScript module that exports the capability's behavioral instructions
86
+ as a default-exported string constant. The runtime loads it via the
87
+ compiled .js path and surfaces the prose through
88
+ `agentera prime --context <name> --format json`.
76
89
  schemas_directory:
77
90
  path: schemas
78
91
  type: directory
@@ -246,9 +259,9 @@ ARTIFACTS:
246
259
  name: capability_directory
247
260
  path: "capabilities/<name>/"
248
261
  description: >-
249
- A valid capability directory. Must contain instructions.md and schemas/.
250
- The schemas/ directory holds YAML files whose union covers all required
251
- groups.
262
+ A valid capability directory. Must contain schemas/. The behavioral
263
+ instructions module lives at
264
+ packages/cli/src/capabilities/<name>/instructions.ts.
252
265
  produces: false
253
266
  consumes: true
254
267
  2:
@@ -263,11 +276,15 @@ ARTIFACTS:
263
276
  consumes: true
264
277
  3:
265
278
  id: A3
266
- name: instruction_file
267
- path: "capabilities/<name>/instructions.md"
279
+ name: instruction_module
280
+ path: "packages/cli/src/capabilities/<name>/instructions.ts"
268
281
  description: >-
269
- Behavioral instructions the agent reads. Markdown format. Contains the
270
- capability's workflow, personality, interaction rules, and examples.
282
+ Behavioral instructions the agent reads. TypeScript module that exports
283
+ a default-exported string constant. The runtime loads it via the
284
+ compiled .js path and serves the prose through
285
+ `agentera prime --context <name> --format json`. The Markdown
286
+ `instructions.md` file is no longer part of the on-disk capability
287
+ surface (D65).
271
288
  produces: false
272
289
  consumes: true
273
290
  4:
@@ -285,10 +302,12 @@ VALIDATION:
285
302
  id: V1
286
303
  rule: directory_structure
287
304
  description: >-
288
- Capability directory must contain instructions.md and schemas/ directory.
305
+ Capability directory must contain schemas/ and the instruction module
306
+ packages/cli/src/capabilities/<name>/instructions.ts must exist as a
307
+ TypeScript source file (the runtime resolves the compiled .js path).
289
308
  severity: error
290
309
  checks:
291
- - "instructions.md is a file"
310
+ - "instruction_module is a file"
292
311
  - "schemas/ is a directory"
293
312
  - "schemas/ contains at least one .yaml file"
294
313
  2:
@@ -145,7 +145,7 @@ Three project-facing files at the project root; nine operational files in `.agen
145
145
  | CHANGELOG.md | CHANGELOG.md | realisera | project contributors | ## [Unreleased], ### Added/Changed/Fixed |
146
146
  | DECISIONS.md | .agentera/decisions.yaml | resonera | planera, realisera, inspektera, profilera, optimera, orkestrera | ## Decision N · date, **Question/Context/Alternatives/Choice/Reasoning/Confidence/Feeds into** |
147
147
  | PLAN.md | .agentera/plan.yaml | planera | realisera, inspektera, orkestrera | <!-- Level/Created/Status -->, ## Tasks with ### Task N, **Status/Depends on/Acceptance** |
148
- | PROGRESS.md | .agentera/progress.yaml | realisera | planera, inspektera, dokumentera, visionera, orkestrera | ## Cycle N · date, **Phase/What/Commit/Inspiration/Discovered/Next/Context** |
148
+ | PROGRESS.md | .agentera/progress.yaml | realisera | planera, inspektera, dokumentera, visionera, orkestrera | ## Cycle N · date, **Phase/What/Inspiration/Discovered/Next/Context** |
149
149
  | HEALTH.md | .agentera/health.yaml | inspektera | realisera, planera, orkestrera | ## Audit N · date, **Dimensions/Findings/Overall/Grades**, per-dimension sections |
150
150
  | OBJECTIVE.md | .agentera/optimera/<name>/objective.yaml | optimera | optimera | ## Metric, ## Target, ## Baseline, ## Constraints, **Status** |
151
151
  | EXPERIMENTS.md | .agentera/optimera/<name>/experiments.yaml | optimera | optimera | ## Experiment N · date, **Hypothesis/Method/Result/Conclusion**; ## Closure · date, **Final value/Target/Reason** |
@@ -669,7 +669,7 @@ This gate is orthogonal to Section 19 Staleness Detection. Section 19 asks: did
669
669
 
670
670
  ### Evidence format
671
671
 
672
- Every cycle entry in PROGRESS.md carries a `verified` field alongside phase, what, commit, inspiration, discovered, next, and context fields. The field is mandatory: no cycle is considered closed without it. The field accepts exactly one of three shapes:
672
+ Every cycle entry in PROGRESS.md carries a `verified` field alongside phase, what, inspiration, discovered, next, and context fields. The field is mandatory: no cycle is considered closed without it. The field accepts exactly one of three shapes:
673
673
 
674
674
  | Shape | Content |
675
675
  |-------|---------|
@@ -55,7 +55,7 @@ BUDGET:
55
55
  1:
56
56
  id: DB1
57
57
  scope: per_decision_entry
58
- max_words: 200
58
+ max_words: 1000
59
59
  description: >-
60
60
  Maximum words per decision entry. Budgets are guidelines, not hard
61
61
  blockers.
@@ -1,7 +1,7 @@
1
1
  # Progress Artifact Schema
2
2
  #
3
3
  # Cycle-by-cycle operational log for realisera. Each entry records what happened
4
- # in one development cycle: phase, work done, commit, discoveries, verification,
4
+ # in one development cycle: phase, work done, discoveries, verification,
5
5
  # next steps, and context envelope.
6
6
  #
7
7
  # Structural pattern: UPPER_CASE groups with numbered entries and stable IDs,
@@ -16,12 +16,11 @@
16
16
  # (type-prefix from heading) CYCLE.type PR3
17
17
  # **Phase**: <phase> CYCLE.phase PR4
18
18
  # **What**: <text> CYCLE.what PR5
19
- # **Commit**: <hash/N/A> CYCLE.commit PR6
20
- # **Inspiration**: <text> CYCLE.inspiration PR7
21
- # **Discovered**: <text> CYCLE.discovered PR8
22
- # **Verified**: <text> CYCLE.verified PR9
23
- # **Next**: <text> CYCLE.next PR10
24
- # **Context**: <text> CYCLE.context PR11
19
+ # **Inspiration**: <text> CYCLE.inspiration PR6
20
+ # **Discovered**: <text> CYCLE.discovered PR7
21
+ # **Verified**: <text> CYCLE.verified PR8
22
+ # **Next**: <text> CYCLE.next PR9
23
+ # **Context**: <text> CYCLE.context PR10
25
24
  # (intent from Context) CONTEXT.intent PT1
26
25
  # (constraints from Context) CONTEXT.constraints PT2
27
26
  # (unknowns from Context) CONTEXT.unknowns PT3
@@ -172,57 +171,38 @@ CYCLE:
172
171
  - "Non-empty string"
173
172
  6:
174
173
  id: PR6
175
- field: commit
176
- type: string
177
- required: true
178
- description: >-
179
- Git commit that contains the product change for this cycle—not the commit
180
- that last edited progress metadata. Use `pending` until that hash is known;
181
- then the product commit hash, optionally with subject (e.g.
182
- `abc1234 Speed up pytest suite`). Use `N/A: …` when no product commit was
183
- made.
184
- validation:
185
- - "Non-empty string"
186
- - "Use `pending` until the product-change commit hash is known; do not amend solely to backfill this field"
187
- - >-
188
- Hashes that do not resolve as commit objects in the local clone (another
189
- machine's copy, shallow CI checkout, or not yet fetched) are intentionally
190
- not flagged by progress validation or `agentera check backfill`; reconcile
191
- with a full clone or forward-fill once the product commit exists locally
192
- 7:
193
- id: PR7
194
174
  field: inspiration
195
175
  type: string
196
176
  required: false
197
177
  description: >-
198
178
  What prompted this cycle. References to active plan tasks,
199
179
  decisions, or conventions that drove the work.
200
- 8:
201
- id: PR8
180
+ 7:
181
+ id: PR7
202
182
  field: discovered
203
183
  type: string
204
184
  required: false
205
185
  description: >-
206
186
  Unexpected findings during the cycle. Things learned that were
207
187
  not known before starting.
208
- 9:
209
- id: PR9
188
+ 8:
189
+ id: PR8
210
190
  field: verified
211
191
  type: string
212
192
  required: false
213
193
  description: >-
214
194
  Evidence that the work was verified. Test commands run, validation
215
195
  passed, manual checks performed.
216
- 10:
217
- id: PR10
196
+ 9:
197
+ id: PR9
218
198
  field: next
219
199
  type: string
220
200
  required: false
221
201
  description: >-
222
202
  What should happen next. Guidance for subsequent cycles.
223
203
  Explicit about scope boundaries to prevent scope creep.
224
- 11:
225
- id: PR11
204
+ 10:
205
+ id: PR10
226
206
  field: context
227
207
  type: map
228
208
  required: true
@@ -293,14 +273,13 @@ VALIDATION:
293
273
  severity: error
294
274
  description: >-
295
275
  Each full-detail cycle entry must have: number, timestamp, type,
296
- phase, what, commit, and context (with intent).
276
+ phase, what, and context (with intent).
297
277
  checks:
298
278
  - "number is present and is a positive integer"
299
279
  - "timestamp is present and matches YYYY-MM-DD HH:MM"
300
280
  - "type is present and is a valid commit prefix"
301
281
  - "phase is present and is a valid phase name"
302
282
  - "what is present and non-empty"
303
- - "commit is present"
304
283
  - "context is present with intent sub-field"
305
284
  3:
306
285
  id: PV3
@@ -108,3 +108,17 @@ CONVENTION:
108
108
  Resolved items should wrap the original task text in Markdown
109
109
  strikethrough (~~text~~) before the resolution summary, keeping
110
110
  the original intent readable while visually marking it closed.
111
+ 6:
112
+ id: TC6
113
+ field: severity_band_policy
114
+ level: required
115
+ description: >-
116
+ Severity band policy: Critical (⇶) is enforced by the validator
117
+ (level: required) and must contain at least one `- [type]` item;
118
+ Degraded (⇉), Normal (→), and Annoying (⇢) are advisory and may
119
+ be header-only (no list entries, no Placeholder sentinel). The
120
+ asymmetry reflects the fact that Critical is the only band whose
121
+ absence is user-visible routing damage; the other three bands
122
+ may be honestly empty. This rule lives in
123
+ packages/cli/src/hooks/validateArtifact.ts `validateMdItems` as
124
+ the single executable source of truth.
@@ -5,7 +5,7 @@ description: >
5
5
  /hej installs toward the Agentera v2 /agentera entry point and idempotent
6
6
  upgrade CLI. Do not use this skill for bare text `hej`; route that through
7
7
  the bundled agentera skill and the agentera hej dashboard path.
8
- version: "2.7.6"
8
+ version: "3.0.0"
9
9
  legacy_bridge: true
10
10
  ---
11
11
 
@@ -0,0 +1,6 @@
1
+ // Source: skills/agentera/capabilities/dokumentera/instructions.md (relocated D65)
2
+ // Markdown body lifted verbatim; the JSON literal below round-trips to byte-for-byte
3
+ // equivalence with the deleted file (whitespace allowed to differ at line endings only).
4
+ export const instructions = JSON.parse(String.raw `"# DOKUMENTERA\n\n**Documentation Origin: Knowledge Unified, Methodology Enforced, Notation Traced. Encode, Record, Archive**\n\nOwns the docs-first workflow: document intended behavior before tests and code. Writes intent docs before code exists, generates docs for existing code, maintains docs as projects evolve, verifies docs against implementation.\n\nTwo modes: **create** and **update**. Context-detected: no feature yet = intent-first; code exists = explore and generate.\n\n---\n\n## Visual identity\n\nGlyph: **▤** (protocol ref: SG8). Used in the mandatory exit marker.\n\n---\n\n## State artifacts\n\nOne index file; writes individual doc files across the project.\n\n| Artifact | Purpose | Bootstrap |\n|----------|---------|-----------|\n| \u0060DOCS.md\u0060 | Canonical documentation contract, stored as \u0060.agentera/docs.yaml\u0060 unless mapped otherwise. Conventions, artifact mapping, and documentation index. | Created on first dokumentera run. |\n\nUse \u0060agentera describe --format json\u0060 and its \u0060artifact_schemas\u0060 entry for \u0060docs\u0060 to locate the active installed schema; use \u0060artifact_locations\u0060 or \u0060agentera query --list-artifacts --format json\u0060 for mapped artifact paths and raw-access boundaries. Do not search Agentera directories manually. The repository's existing \u0060.agentera/docs.yaml\u0060 shape provides the local structure when editing that artifact. Individual documentation files are written to their mapped locations.\n\n### Artifact path resolution\n\nBefore reading or writing any artifact, prefer the CLI artifact-location contract from \u0060agentera describe --format json\u0060 or \u0060agentera query --list-artifacts --format json\u0060. It resolves \u0060.agentera/docs.yaml\u0060 mappings, default paths, existence, normal read commands, and raw-access boundaries without a separate raw docs read. Raw \u0060.agentera/docs.yaml\u0060 access is reserved for writing or validating the docs artifact itself, corruption diagnostics, or unavailable/incomplete CLI discovery. This applies to all artifact references in this capability, including cross-capability reads (VISION.md, .agentera/progress.yaml, .agentera/decisions.yaml, .agentera/health.yaml).\n\n### Contract values\n\nContract values are inlined where referenced. Visual tokens from protocol: severity arrows VT5-VT8, trend arrows VT12-VT13, progress bar VT18, inline separator VT16 (·), list item VT15 (▸), section divider VT14, flow/target VT17 (→). Skill glyph SG8 for the exit marker. Exit signals EX1-EX4 for the exit marker. Confidence scale CS1-CS5 for decision profile consumption.\n\n\u0060references/contract.md\u0060 (at the v2 skill location \u0060skills/agentera/references/contract.md\u0060) remains available as a full-spec reference for ambiguous cases or cross-checking.\n\n---\n\n## docs.yaml shape\n\n\u0060\u0060\u0060yaml\nlast_audit: YYYY-MM-DD\nconventions:\n doc_root: .\n style: technical, concise\n auto_gen: []\n version_files: []\n semver_policy:\n feat: minor\n fix: patch\n docs/chore/test: no bump\nmapping:\n - artifact: VISION.md\n path: .agentera/vision.yaml\n producers: [visionera, realisera]\nindex:\n - document: README\n path: README.md\n last_updated: YYYY-MM-DD\n status: current\n\u0060\u0060\u0060\n\n---\n\n## Step 0: Detect context\n\nBefore artifact-backed work, use supported Agentera CLI state first. For final\ndocumentation or metadata synchronization, follow the closeout context startup\ncontract below before reading TODO, docs, changelog, or progress artifacts directly.\n\nDetermine what kind of documentation work is needed:\n\n1. Read DOCS.md (if exists) for current state\n2. Parse user request: specific target or broad \"write/update docs\"?\n3. Check codebase: does the feature exist in code?\n\n| Context | Approach |\n|---------|----------|\n| Feature doesn't exist yet, user wants to document intent | **Intent-first** (conversational) |\n| Code exists, docs don't | **Explore and generate** (autonomous) |\n| Docs exist, may be stale | **Update and verify** (audit-driven) |\n| Broad \"audit the docs\" / \"are docs up to date\" | **Full audit** |\n| No DOCS.md exists | **First-run survey** (convention detection) |\n\n---\n\n## Closeout context startup\n\nCloseout synchronization uses the existing state seam:\n\n\u0060\u0060\u0060bash\nagentera prime --context dokumentera --format json\n\u0060\u0060\u0060\n\nWhen the response includes \u0060closeout_context.source_contract.complete_for_closeout_context: true\u0060, use \u0060closeout_context\u0060 as the normal source for:\n\n- artifact mappings\n- version policy\n- TODO blockers\n- changelog and release boundary state\n- progress evidence\n- benchmark evidence or unavailable caveat\n- fallback commands\n- state caveats\n- raw-read policy\n- completeness and non-empty evidence flags\n\nDo not raw-read \u0060TODO.md\u0060, \u0060.agentera/docs.yaml\u0060, \u0060CHANGELOG.md\u0060, or \u0060.agentera/progress.yaml\u0060 merely to reconstruct those fields when the closeout context is complete. Raw artifacts are write targets or last-resort diagnostics, not normal closeout inputs.\n\nWhen closeout context is incomplete or caveated:\n\n1. Preserve every returned caveat, including stale app/profile state, compacted state, missing benchmark evidence, absent local tag/metadata, and no-publication/no-remote state.\n2. Run the listed \u0060closeout_context.fallback_commands\u0060 before any raw artifact read. Expected existing fallbacks are \u0060agentera todo --format json\u0060, \u0060agentera docs --format json\u0060, \u0060agentera progress --format json\u0060, \u0060agentera query changelog --format json\u0060, \u0060agentera query --list-artifacts --format json\u0060, and \u0060agentera decisions --format json\u0060 when listed.\n3. If fallback CLI state is still incomplete, raw reads may be used only as last-resort diagnostics or as explicit write targets after artifact path resolution.\n4. Never hide or reconstruct caveats while preparing docs, changelog, TODO, or progress closeout. Carry them into the final synchronization note.\n\nCloseout context does not approve publication, remote push, installed app refresh, profile refresh, vision edits, or objective-state edits. Treat those fields as recorded evidence or caveats only.\n\n### Decision satisfaction authority\n\nWhen documentation or closeout work touches decision satisfaction, agents may\nmark provisional satisfaction with evidence only. Dokumentera must not mark or\nimply user-confirmed final satisfaction; only the user confirms final\nsatisfaction. If decisions are compacted, missing satisfaction state, open,\nprovisional, or review-needed, preserve the caveat and review pressure in docs\nor closeout notes instead of reconstructing hidden outcomes or claiming\nautomation proved intent.\n\n---\n\n## First-run survey (convention detection)\n\nWhen DOCS.md doesn't exist, run a survey first. Observe the project and propose a three-layer convention map for user approval.\n\nStep markers: display \u0060── step N/5: verb\u0060 before each step.\nSteps: explore, propose, handle, audit, write.\n\n### Step 1: Explore structure\n\nDetect documentation conventions:\n\n1. **Doc root**: check docs/, doc/, documentation/, wiki/, or root. Default to root.\n2. **Existing docs**: README, CLAUDE.md, AGENTS.md, CONTRIBUTING.md, API docs, guides\n3. **Auto-generated docs**: TypeDoc, Storybook, OpenAPI/Swagger, GoDoc, Rustdoc, Javadoc. Record each with output path.\n4. **Style**: infer tone, structure patterns, formatting conventions from existing docs\n5. **Skill artifacts**: check \u0060.agentera/docs.yaml\u0060 mappings, root human artifacts, and \u0060.agentera/*.yaml\u0060 agent artifacts\n6. **Version files**: package.json, Cargo.toml, pyproject.toml, plugin.json, etc. Note files and current values. None found = omit versioning from DOCS.md.\n\n### Step 2: Propose conventions\n\nDraft three-layer \u0060.agentera/docs.yaml\u0060 from the artifact schema and observed repository conventions:\n\n1. **Conventions**: doc_root, style, auto_gen from observations. If version files found, populate \u0060version_files\u0060 and ask about semver policy. No version files = omit block.\n2. **Artifact mapping**: paths consistent with project's doc organization\n3. **Index**: all discovered docs (auto-generated = \u0060generated\u0060, existing = \u0060current\u0060)\n\nPresent for user approval.\n\n### Step 3: Handle existing artifacts\n\nIf artifacts exist at root but mapping places them elsewhere:\n\n1. List artifacts that would move\n2. Offer to relocate via \u0060git mv\u0060\n3. If declined, update mapping to match actual locations\n\n### Step 4: Pre-write self-audit\n\nPre-write self-audit: run \u0060agentera lint --artifact <ARTIFACT> --text \"<DRAFT>\"\u0060 (or \u0060--file <PATH>\u0060; schema names such as \u0060decisions\u0060 auto-resolve the artifact file when no input is given) on the draft entry to check verbosity overruns (per-artifact budget), abstraction creep (>=1 concrete anchor), and filler accumulation (banned patterns).\nMax 3 revision attempts. Flag with [post-audit-flagged] if still failing.\n\nNarration voice (riff, don't script):\n\n- \"Tightening this up...\" · \"Cutting the filler first...\" · \"One more pass...\"\n\n### Step 5: Write DOCS.md\n\nWrite the approved convention map to \u0060.agentera/docs.yaml\u0060. After writing, proceed to the originally requested mode, or stop if the survey was the entire request.\n\nArtifact writing follows contract Section 24 (Artifact Writing Conventions): banned verbosity patterns, 25-word sentence cap, preferred vocabulary, and lead-with-conclusion structure.\n\n---\n\n## Intent-first mode (docs before code)\n\nDocs-first workflow: document what a feature SHOULD do before building. Docs become the spec.\n\nStep markers: display \u0060── step N/5: verb\u0060 before each step.\nSteps: understand, write, audit, update, suggest.\n\n### Step 1: Understand the intent\n\nBrief conversation (2-4 questions): what, who reads it, what format, what detail level.\n\nRead VISION.md for direction/audience and decision profile per protocol confidence scale (CS1-CS5) conventions for doc style preferences if they exist.\n\n### Step 2: Write the documentation\n\nWrite docs in the appropriate location: project-level (README, CLAUDE.md) to standard paths, feature docs to the project's docs directory, inline docs to source files.\n\n**Principles**: follow DOCS.md style conventions, infer details from existing docs. Write as intended steady state (evergreen, non-temporal). Primary audience first. Concrete examples. DRY across doc files.\n\nWhen presenting drafts, introduce what you wrote and why: what choices you made, what you left out on purpose, what you'd want feedback on. Don't just dump the doc.\n\nPresent draft for approval before writing.\n\n### Step 3: Pre-write self-audit\n\nPre-write self-audit: run \u0060agentera lint --artifact <ARTIFACT> --text \"<DRAFT>\"\u0060 (or \u0060--file <PATH>\u0060; schema names such as \u0060decisions\u0060 auto-resolve the artifact file when no input is given) on the draft entry to check verbosity overruns (per-artifact budget), abstraction creep (>=1 concrete anchor), and filler accumulation (banned patterns).\nMax 3 revision attempts. Flag with [post-audit-flagged] if still failing.\n\nNarration voice (riff, don't script):\n\n- \"Tightening this up...\" · \"Cutting the filler first...\" · \"One more pass...\"\n\n### Step 4: Update DOCS.md\n\nAdd or update the relevant entry in DOCS.md:\n\n- Document name and path\n- Date written\n- Status: \u0060current\u0060\n\nOutput constraint: ≤15 words per index entry description.\n\nArtifact writing follows contract Section 24 (Artifact Writing Conventions): banned verbosity patterns, 25-word sentence cap, preferred vocabulary, and lead-with-conclusion structure.\n\n### Step 5: Suggest next steps\n\n- Feature docs: suggest ≡ planera to plan implementation\n- Standalone docs: suggest update mode later for verification\n\n---\n\n## Explore-and-generate mode (docs for existing code)\n\nCode exists, docs don't. Read codebase and generate.\n\nStep markers: display \u0060── step N/5: verb\u0060 before each step.\nSteps: explore, gaps, generate, audit, update.\n\n### Step 1: Explore\n\n1. Map directory structure, read dependency manifests\n2. Read existing docs to see what's already documented\n3. Read key source files: architecture, public APIs, patterns\n4. Read VISION.md, PROGRESS.md, DECISIONS.md, decision profile if they exist; use \u0060agentera decisions --format json\u0060 for normal decision context and carry returned \u0060missing_fields\u0060, \u0060compacted\u0060, \u0060caveats\u0060, and \u0060satisfaction.review_needed\u0060 pressure into documentation scope instead of raw-reading missing historical decision context.\n5. \u0060git log --oneline -20\u0060 for context\n\n**Exit-early stop condition**: If DOCS.md exists with coverage at 100% and no files have changed since the last dokumentera audit (\u0060git log --since\u0060 the last audit date in DOCS.md shows no changes), report exit signal \u0060complete\u0060 (EX1): documentation current, and stop.\n\n### Step 2: Identify gaps\n\nCompare what exists against what should be documented: README.md accuracy, CLAUDE.md/AGENTS.md presence, API docs, CLI docs with usage, configuration docs, architectural decision docs.\n\n### Step 3: Generate\n\nWrite docs for gaps, prioritized: (1) README, (2) CLAUDE.md, (3) API/CLI docs, (4) architecture docs. Follow DOCS.md style conventions.\n\nWhen presenting drafts, introduce what you wrote and why: what you learned from the code, what design choices the doc reflects, what you're less sure about. Don't just dump the doc.\n\nPresent drafts for approval.\n\n### Step 4: Pre-write self-audit\n\nPre-write self-audit: run \u0060agentera lint --artifact <ARTIFACT> --text \"<DRAFT>\"\u0060 (or \u0060--file <PATH>\u0060; schema names such as \u0060decisions\u0060 auto-resolve the artifact file when no input is given) on the draft entry to check verbosity overruns (per-artifact budget), abstraction creep (>=1 concrete anchor), and filler accumulation (banned patterns).\nMax 3 revision attempts. Flag with [post-audit-flagged] if still failing.\n\nNarration voice (riff, don't script):\n\n- \"Tightening this up...\" · \"Cutting the filler first...\" · \"One more pass...\"\n\n### Step 5: Update DOCS.md\n\nCreate or update DOCS.md with all items. Edit specific YAML entries when updating status/dates. If DOCS.md doesn't exist, run first-run survey first.\n\nArtifact writing follows contract Section 24 (Artifact Writing Conventions): banned verbosity patterns, 25-word sentence cap, preferred vocabulary, and lead-with-conclusion structure.\n\n---\n\n## Update-and-verify mode (audit-driven)\n\nDocs exist but may be out of sync with implementation.\n\nStep markers: display \u0060── step N/6: verb\u0060 before each step.\nSteps: discover, verify, prose-enforce, report, audit, update.\n\n### Step 1: Discover\n\nIdentify all doc files: root (README, CLAUDE.md, etc.), directories (docs/, .github/), config comments. Read DOCS.md for current index. Track auto-generated docs as \u0060generated\u0060. Skip node_modules/, .git/, vendor/.\n\n### Step 2: Verify\n\nCheck each doc file on four dimensions:\n\n- **Gaps**: documented features/APIs/behaviors that don't exist in code\n- **Staleness**: changed signatures, removed features, outdated setup instructions\n- **Redundancies**: duplicated content across doc files\n- **Misalignments**: docs contradict actual code behavior\n\nFor each finding: quote the doc section, reference code location (file:line), explain the discrepancy.\n\n### Step 3: Doc-prose enforcement\n\nCheck all docs indexed in DOCS.md against the 3 self-audit rules:\n\n1. **Read DOCS.md index**: if DOCS.md is absent, run first-run survey to bootstrap it, then continue. Extract tracked docs from the \u0060index\u0060 list. Skip entries with \u0060generated\u0060 or \u0060missing\u0060 status.\n2. **For each doc**, read the file and check against the 3 rules:\n - **Verbosity overrun**: entry word counts exceeding token budgets for the artifact's scope. Flag entries that exceed budget without compaction.\n - **Abstraction creep**: sections lacking ≥1 concrete anchor (file path, line number, commit hash, metric value, identifier, direct quote). Flag entries that narrate concepts without evidence.\n - **Filler accumulation**: scan for banned verbosity patterns: meta-commentary about writing, hedging qualifiers, redundant transitions, self-referential process narration, filler introductions, summary preambles, excessive justification. Flag entries containing banned patterns.\n3. **Surface \u0060[post-audit-flagged]\u0060 entries**: scan each doc for the \u0060[post-audit-flagged]\u0060 marker. Report any flagged entries as warning-level findings.\n4. **Report findings** at standard severity levels:\n - **critical** (SF1): doc section contradicts code, or instructions that would cause user errors\n - **warning** (SF2): verbosity above budgets, abstraction creep, accumulated filler patterns, pre-existing \u0060[post-audit-flagged]\u0060 markers\n - **info** (SF3): minor style issues, single banned pattern in an otherwise clean entry\n\n### Step 4: Report and fix\n\nBy severity: ⇶ critical (VT5, causes user errors), ⇉ warning (VT6, causes confusion), ⇢ info (VT8, cosmetic). For each finding, offer to: fix the doc, file to TODO.md (code is wrong per the docs-first workflow), or skip.\n\n### Step 5: Pre-write self-audit\n\nPre-write self-audit: run \u0060agentera lint --artifact <ARTIFACT> --text \"<DRAFT>\"\u0060 (or \u0060--file <PATH>\u0060; schema names such as \u0060decisions\u0060 auto-resolve the artifact file when no input is given) on the draft entry to check verbosity overruns (per-artifact budget), abstraction creep (>=1 concrete anchor), and filler accumulation (banned patterns).\nMax 3 revision attempts. Flag with [post-audit-flagged] if still failing.\n\nNarration voice (riff, don't script):\n\n- \"Tightening this up...\" · \"Cutting the filler first...\" · \"One more pass...\"\n\n### Step 6: Update DOCS.md\n\nUpdate the index with:\n\n- ▸ Audit date\n- ▸ Status changes (■ current / ▣ stale / □ missing)\n- ▸ Coverage numbers\n- ▸ Audit log entry\n\n---\n\n## Safety rails\n\n<critical>\n- NEVER modify documentation without explicit user approval. Present drafts and get confirmation.\n- NEVER update docs to match broken code. Per the docs-first workflow, if code diverges from docs, the code is wrong. Document the divergence as an issue in TODO.md.\n- NEVER write temporal documentation (changelogs, \"we recently added...\"). Write as the intended steady state, evergreen and non-temporal.\n- NEVER duplicate information across doc files. Keep it DRY: reference, don't repeat.\n- NEVER write generic filler documentation. Every sentence should be specific to this project. If there's nothing useful to say about a section, omit it.\n- NEVER skip the verification step in update mode. Every doc claim must be checked against code.\n- NEVER auto-generate documentation without reading the code it describes. Understanding precedes documentation.\n</critical>\n\n---\n\n## Exit signals\n\nReport one of these statuses at workflow completion (protocol refs: EX1-EX4).\n\nFormat: \u0060▤ dokumentera · <status>\u0060 followed by a summary sentence.\nFor flagged, stuck, and waiting: add \u0060▸\u0060 (VT15) bullet details below the summary.\n\n- **complete** (EX1): Documentation was written, updated, or audited successfully; DOCS.md is current, and all drafted content received user approval before writing.\n- **flagged** (EX2): Documentation tasks completed but gaps remain (e.g., some doc files could not be verified against code, coverage is partial, or the audit found issues that were logged but not yet fixed).\n- **stuck** (EX3): Cannot proceed because a user approval step was declined, a required artifact (VISION.md, source code) is missing or inaccessible, or a contradicting doc-vs-code situation requires a decision the capability should not make autonomously.\n- **waiting** (EX4): The documentation intent is unclear: the target audience, format, or scope of what to document was not specified and cannot be inferred from the codebase or DOCS.md.\n\n---\n\n## Cross-capability integration\n\nDokumentera is part of a twelve-capability suite. It is the documentation layer and owns the docs-first workflow.\n\n### Dokumentera feeds planera (docs-first workflow)\n\nIn the strict docs-first workflow, dokumentera writes intent docs first, then planera breaks them into implementation tasks. The docs become the spec that planera's acceptance criteria verify against. When the plan includes documentation tasks, dokumentera handles them.\n\n### Dokumentera feeds realisera\n\nWhen dokumentera writes intent-first docs for a feature that doesn't exist yet, realisera implements code to match those docs. The docs are the target state; if code diverges from docs, the code is wrong per the docs-first workflow.\n\n### Dokumentera is informed by inspektera\n\nHEALTH.md findings may include documentation gaps. Inspektera's architecture alignment dimension can surface undocumented modules or APIs.\n\n### Dokumentera is informed by visionera\n\nVISION.md sets the project's direction and audience. Dokumentera reads it to understand who the documentation is for and what tone to use.\n\n### Dokumentera is informed by profilera\n\nThe decision profile calibrates documentation style: the user's preferences for detail level, tone, format, and which docs they consider essential.\n\n### Dokumentera reads visualisera output\n\nDESIGN.md provides visual identity context that dokumentera respects when generating user-facing documentation, ensuring docs match the project's declared aesthetic and voice.\n\n### Dokumentera feeds profilera\n\nDocumentation decisions (what to document, how, at what depth) are signal for profilera's extraction scripts.\n\n---\n\n## Getting started\n\n### Docs-first workflow: document before building\n\n1. ▤ dokumentera: write intent docs for the feature (what it should do, how it should work)\n2. ≡ planera: plan the implementation with acceptance criteria derived from the docs\n3. ⧉ realisera: build to match the docs\n4. ▤ dokumentera: update mode to verify docs still match implementation\n\n### Document existing code\n\n1. ▤ dokumentera: explore-and-generate mode reads the codebase and writes docs for what exists\n2. Review generated docs for accuracy and completeness\n\n### Audit and maintain\n\n1. ▤ dokumentera: update-and-verify mode checks all docs against code\n2. Fix findings or file code issues to TODO.md\n\n### Project bootstrap\n\n1. ⛥ visionera: create VISION.md (strategic direction)\n2. ▤ dokumentera: create README.md, CLAUDE.md, AGENTS.md (project documentation)\n3. ≡ planera: plan first features\n4. ⧉ realisera: start building\n"`);
5
+ export default instructions;
6
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/capabilities/dokumentera/instructions.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,qFAAqF;AACrF,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAA,qmtBAAqmtB,CAAC,CAAC;AAChqtB,eAAe,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Source: skills/agentera/capabilities/hej/instructions.md (relocated D65)
2
+ // Markdown body lifted verbatim; the JSON literal below round-trips to byte-for-byte
3
+ // equivalence with the deleted file (whitespace allowed to differ at line endings only).
4
+ export const instructions = JSON.parse(String.raw `"# HEJ\n\n**Holistic Entry Junction. Orient, Route, Activate**\n\nSingle entry point to the agentera suite. Detects fresh vs returning, delivers a situational briefing, routes to the right capability. Same on first install and 100th session. A bare user message exactly \u0060hej\u0060 uses this same briefing path, not generic greeting behavior.\n\nEach invocation = one orientation. Uses the CLI composite briefing first,\nwrites nothing.\n\n---\n\n## State artifacts\n\nGlyph: **⌂** (SG1). Hej reads suite state through \u0060agentera hej\u0060 and writes\nnothing. It may fall back to direct reads only when the composite command fails\nor explicitly asks for fallback.\n\n### CLI-first access\n\nFor returning projects, run one composite command before any individual state\naccess:\n\n\u0060\u0060\u0060bash\nnpx -y agentera prime\n\u0060\u0060\u0060\n\nUse that output to render the dashboard and select the concrete next action. Do\nnot relay raw CLI lines as the user-facing briefing. Source labels such as\n\u0060mode:\u0060, \u0060profile:\u0060, \u0060v1_migration:\u0060, \u0060health:\u0060, \u0060issues:\u0060, \u0060plan:\u0060,\n\u0060objective:\u0060, \u0060attention:\u0060, \u0060next_action:\u0060, \u0060source_contract:\u0060, and the\ncompatibility \u0060bundle:\u0060 installed-app status object are parsing aids, not\ndashboard lines. Do not run \u0060agentera plan\u0060, \u0060agentera progress\u0060, \u0060agentera\nhealth\u0060, \u0060agentera todo\u0060, \u0060agentera decisions\u0060, or \u0060agentera objective\u0060 as part\nof normal hej briefing assembly. Do not read raw\n\u0060.agentera/*.yaml\u0060 files for normal hej orientation. If a normal dashboard field\nis missing from \u0060agentera hej\u0060, fix or extend the composite CLI contract instead\nof adding routine fallback reads. Use top-level fallback commands only when\n\u0060agentera hej\u0060 fails or explicitly reports fallback-only recovery.\n\nResolve \u0060RESOLVED_AGENTERA_HOME\u0060 with the app-home precedence \u0060AGENTERA_HOME\u0060\nwhen set, otherwise the platform data home, then run\nthe installed command once. Do not preflight app health with \u0060glob\u0060, \u0060grep\u0060,\n\u0060read\u0060, \u0060ls\u0060, \u0060python\u0060, \u0060doctor\u0060, \u0060--help\u0060,\n\u0060registry.json\u0060, or \u0060.agentera-bundle.json\u0060.\nNever combine the app-home assignment with the same shell command that expands\nthe managed app script path; shell expansion can otherwise turn an unset\n\u0060AGENTERA_HOME\u0060 into \u0060npx -y agentera\u0060 before the assignment takes effect.\n\nRecovery copy must be plain-language and recommendation-first. Never ask users\nto choose between technical install concepts, internal directory states,\ncommand-mode flags, or package-layout terms. Say what happened, what changed,\nwhat the safe fix does, and what it will not touch. The safe fix must say it will\nnot edit project files, shell startup files, or unknown directories. Good recovery labels are \u0060Use the safe fix\n(Recommended)\u0060, \u0060Choose a different directory\u0060, and \u0060Stop\u0060.\n\nIf the command cannot execute because \u0060AGENTERA_HOME\u0060 names the old default\n\u0060$HOME/.agents/agentera\u0060 and \u0060npx -y agentera\u0060 is missing,\ndo not require a successful failed CLI invocation and do not first ask the user to\nunset \u0060AGENTERA_HOME\u0060. Say: \u0060Agentera found an old or broken local copy of\nitself. The safe fix is to install a fresh copy in the normal Agentera directory.\u0060\nThen show this preview command and say it changes nothing:\n\n\u0060\u0060\u0060bash\nnpx -y agentera@latest doctor\n\u0060\u0060\u0060\n\nThat preview writes nothing. Because no explicit \u0060--install-root\u0060 is supplied,\nupgrade can choose the normal platform app directory and preview repair for app\nfiles, managed runtime surfaces, and cleanup of the old directory. Ask for\nexplicit approval before writes, using plain wording such as\n\u0060Approve the safe Agentera repair at <directory>\u0060. Then apply the same safe repair path:\n\n\u0060\u0060\u0060bash\nnpx -y agentera@latest prime\n\u0060\u0060\u0060\n\nAfter apply, retry the installed command from the platform app home reported by\nthe upgrade output, not from the old default directory. If the command exits\nsuccessfully, inspect the CLI-provided \u0060bundle.status\u0060 installed-app status\nobject. Only \u0060up_to_date\u0060 passes the installed Agentera app gate for normal briefing.\nThe object also carries \u0060appHome\u0060, \u0060managedAppRoot\u0060, \u0060userDataRoot\u0060,\n\u0060expectedVersionSource\u0060, \u0060bundle.dryRunCommand\u0060, \u0060bundle.applyCommand\u0060, and\napproval text. If the installed command cannot execute, is out of date, missing\n\u0060hej\u0060, fails before argparse, or reports manual-review-needed/repair-needed status, tell\nthe user \u0060Agentera found an old or broken local copy of itself.\u0060 Then preview the\nrepair with the CLI-provided command when present:\n\n\u0060\u0060\u0060bash\nnpx -y agentera@latest doctor\n\u0060\u0060\u0060\n\nDo not run the matching apply command until the user explicitly approves the\nsame Agentera repair and directory.\nAfter apply, retry \u0060npx -y agentera prime\u0060; do not treat local checkout\nfallback as installed-app success. If \u0060AGENTERA_HOME\u0060 names the old default\n\u0060$HOME/.agents/agentera\u0060, no explicit \u0060--install-root\u0060 was supplied, and\n\u0060npx -y agentera\u0060 is missing or out of date, show the normal\nAgentera directory preview above instead of first asking the user to unset\n\u0060AGENTERA_HOME\u0060; do not claim to prove where the environment value came from. If\n\u0060AGENTERA_HOME\u0060 points at any other missing path, file, or directory with unknown\nfiles, say: \u0060Agentera was told to use a directory it cannot safely use. Choose a\ndifferent Agentera directory, or approve --force only after checking that directory is\nsafe to replace.\u0060\n\nIf doctor reports a leftover 1.x managed marker block in\nshell startup files, say plainly that Agentera will not edit those files.\nCleanup is user-owned manual cleanup, not a repair write.\n\nUse \u0060agentera query <artifact-name> --format json|yaml\u0060 only for advanced or\ncustom artifact inspection when no top-level command serves the needed state.\n\n### Artifact path resolution\n\nOnly if \u0060agentera hej\u0060 fails and fallback raw artifact access is explicitly\nneeded, check \u0060.agentera/docs.yaml\u0060 for path mappings before reading artifacts.\nWithout a mapping, use the default layout:\n\n- Human-facing artifacts at the project root (Markdown): \u0060TODO.md\u0060, \u0060CHANGELOG.md\u0060, \u0060DESIGN.md\u0060\n- Agent-facing artifacts in \u0060.agentera/\u0060 (YAML): \u0060progress.yaml\u0060, \u0060decisions.yaml\u0060, \u0060health.yaml\u0060, \u0060plan.yaml\u0060, \u0060docs.yaml\u0060, \u0060vision.yaml\u0060, and per-objective \u0060objective.yaml\u0060 / \u0060experiments.yaml\u0060\n\nCanonical names are identifiers, not literal paths. PROFILE.md is global:\n\u0060$PROFILERA_PROFILE_DIR/PROFILE.md\u0060, default \u0060$XDG_DATA_HOME/agentera/PROFILE.md\u0060.\n\n### Contract values\n\nUse protocol tokens by ID where needed: severity arrows VT5-VT8, trend arrows\nVT12-VT13, progress bar VT18, separator VT16, list item VT15, section divider\nVT14, flow arrow VT17, skill glyphs SG1-SG12, exits EX1-EX4, issues SI1-SI4.\n\n---\n\n## Step 0: Detect mode\n\nRun the resolved installed \u0060agentera hej\u0060 and use its \u0060mode\u0060 field. If the\ninstalled-app status check reports out-of-date or blocked, show the CLI-provided\nrefresh preview before normal mode handling.\n\n- **No artifacts found** → Step 1a (first time on this project)\n- **Artifacts found** → Step 1b (returning to known project)\n\nNarration voice: warm, brief, unscripted.\n\n---\n\n## Step 0.5: CLI-owned checks\n\nDo not run separate v1 artifact or PROFILE.md checks during normal hej\norientation. \u0060agentera hej\u0060 owns those checks and emits the mode, profile status,\n\u0060v1_migration.detected\u0060, \u0060v1_migration.affected_files\u0060,\n\u0060v1_migration.dry_run_command\u0060, \u0060v1_migration.apply_command\u0060, \u0060project_integration.recommendation\u0060, \u0060project_integration.message\u0060, \u0060project_integration.dry_run_command\u0060, \u0060project_integration.apply_command\u0060, attention items,\nand next action. When \u0060project_integration.recommendation\u0060 is \u0060upgrade\u0060, explain the plain-language \u0060project_integration.message\u0060, show the preview command (\u0060project_integration.dry_run_command\u0060; it changes nothing), and ask before \u0060project_integration.apply_command\u0060. When it is \u0060stay\u0060, do not suggest upgrade. User-facing upgrade commands omit \u0060--project\u0060 because the CLI defaults to the current repo. Render those fields; do not spend additional tool calls on\n\u0060.agentera/*.md\u0060, \u0060.agentera/*.yaml\u0060, \u0060VISION.md\u0060, or global profile-path\ndiscovery. Treat \u0060v1_migration.dry_run_command\u0060 as the CLI-supplied preview and\ntell the user it changes nothing. Ask before any upgrade apply command, and only run\n\u0060v1_migration.apply_command\u0060 after confirmation.\nThe artifacts phase migrates supported v1 Markdown files to YAML with backups\nafter preview and confirmation.\n\nIf \u0060v1_migration.detected\u0060 is false, emit no upgrade notice. Profile status is\nalso CLI-owned: render \u0060profile: loaded\u0060 without warning, and render\n\u0060profile.suggested_action\u0060 or a missing-profile attention item only when\n\u0060agentera hej\u0060 supplies one.\n\nIf \u0060npx skills update\u0060 refreshed only the visible skill and \u0060/agentera\u0060 next\nfinds missing or out-of-date app files, explain in plain language that Agentera\nalso needs to repair its local app copy; the visible skill update alone is not\nenough. Package-manager repair commands remain opt-in through\n\u0060--update-packages\u0060.\n\n---\n\n## Step 1a: Welcome\n\nFirst impression: the colleague meets a new project.\n\n1. **Use composite state**: Build the welcome from \u0060agentera hej\u0060 output only.\n Do not scan README files, git history, languages, framework files, or project\n size during bare orientation.\n\n2. **Share what's available**: lead with the suggested capability from\n \u0060next_action\u0060. Do not enumerate the full suite unless asked.\n\n3. **Route**: ask what they'd like to do with a free-form prompt. Do not use a\n native question menu on the initial welcome unless the user explicitly asked\n for bounded choices. Invoke a capability only after the user confirms it.\n\n---\n\n## Step 1b: Briefing\n\nShow where things stand.\n\n1. **Use composite state**: Build the briefing from \u0060agentera hej\u0060 output.\n - Use its mode, profile, health, issue counts, plan progress, objective,\n attention, and next_action fields.\n - Do not issue individual artifact queries during normal returning-project\n orientation.\n - Do not open raw \u0060.agentera/*.yaml\u0060 files unless the composite command fails\n or names a fallback need.\n - If exceptional fallback is required, prefer top-level commands such as\n \u0060agentera plan\u0060, \u0060agentera progress\u0060, \u0060agentera health\u0060, \u0060agentera todo\u0060,\n \u0060agentera decisions\u0060, \u0060agentera objective\u0060, and \u0060agentera experiments\u0060.\n Missing normal dashboard fields should be repaired in \u0060agentera hej\u0060\n instead of weakening the one-command path.\n - Keep \u0060agentera query\u0060 for advanced/custom inspection only.\n\n2. **Brief them**: concise status, only what exists. No empty sections.\n Show the agentera logo.\n\n \u0060\u0060\u0060\n ┌─┐┌─┐┌─┐┌┐┌┌┬┐┌─┐┬─┐┌─┐\n ├─┤│ ┬├┤ │││ │ ├┤ ├┬┘├─┤\n ┴ ┴└─┘└─┘┘└┘ ┴ └─┘┴└─┴ ┴\n\n ─── status ─────────────────────────────\n\n ⛶ health [⮉|⮋] [grade] ([worst dimension: grade])\n ⇶ issues N critical · M degraded · J annoying\n ≡ plan [██████▓░░░] N/M tasks\n ⎘ optim [metric] [current] → [target]\n ♾ profile [loaded | not found]\n\n [1-2 sentence narrative read: what shipped, what's moving, what needs eyes.\n Interpretation, not metrics. Closes the status section before attention.]\n\n ─── attention ──────────────────────────\n\n ⇶ [critical items, triple arrow for critical]\n ⇉ [degraded items, double arrow for degraded]\n → [normal items, single arrow for normal]\n ⇢ [annoying items, dashed arrow for annoying]\n\n ─── next ───────────────────────────────\n\n suggested → [glyph] [capability] ([reason])\n \u0060\u0060\u0060\n\n Output constraint: ≤120 words total briefing, ≤15 words per routing suggestion.\n\n **Exit marker**: after the closing code fence of the dashboard, emit \u0060⌂ hej · <status>\u0060 on its own line, followed by a one-sentence summary of what you delivered. For \u0060waiting\u0060, \u0060flagged\u0060, or \u0060stuck\u0060, add a \u0060▸\u0060 bullet below the summary identifying what the user needs to decide or act on next. The exit marker is mandatory on every invocation regardless of mode (fresh welcome or returning briefing).\n\n **Formatting rules**:\n - Each status line uses the skill glyph that owns that data\n - Severity arrows (VT5-VT8) mark attention items by urgency\n - Trend arrows (VT12/VT13) show health trajectory\n - Progress bars (VT18) show plan completion visually\n - The inline separator (VT16) joins counts on a single line\n - Lead with status metrics, then the narrative read inside the status section\n - The narrative read is colleague interpretation; metric lines above it are evidence\n - The issues summary line lists critical, degraded, and annoying counts only;\n normal-priority items belong in attention with → (SI3), not on the summary line\n - Omit any line whose source artifact is missing\n - Omit any section that would be empty (e.g., no attention items = no attention section)\n\n3. **Attention items**: priority order with severity arrows (SI1-SI4):\n - ⇶ (SI1) Critical issues, degrading health dimensions\n - ⇉ (SI2) Blocked/overdue plan tasks, stale artifacts (plan-relative per contract staleness detection; fall back to PROGRESS.md recency heuristic when no plan context exists), overdue health audits (hybrid time/cycle staleness via \u0060AGENTERA_INSPEKTERA_MAX_AGE_DAYS\u0060 default 30 and \u0060AGENTERA_INSPEKTERA_MAX_CYCLES\u0060 default 10; stale when either axis exceeds its threshold), loop stop-condition triggers\n - → (SI3) Standard work: features, improvements, routine tasks\n - ⇢ (SI4) Unresolved exploratory decisions\n\n Nothing? Say so. A clean bill of health is useful.\n\n4. **Select the concrete next action before selecting the skill**.\n - The routing suggestion MUST name the artifact item it would act on.\n - Valid objects: \u0060PLAN Task N: <title>\u0060, \u0060TODO: <item>\u0060, \u0060DECISION N follow-up\u0060, \u0060OBJECTIVE: <metric>\u0060, or \u0060VISION refresh\u0060.\n - A skill name without a concrete object is not a valid suggestion.\n\n Priority order. SG codes are internal protocol references; never render them\n in user-facing handoff labels:\n - Active PLAN with pending tasks → suggest ⎈ orkestrera for the first unblocked pending task.\n - Critical or degrading health → suggest ⛶ inspektera or ⧉ realisera for the named finding.\n - Stale health audit (CLI \u0060health.stale=true\u0060) with no higher-priority work → suggest ⛶ inspektera for \u0060HEALTH: Audit N stale\u0060.\n - Active non-closed OBJECTIVE with stalled or missing metric evidence → suggest ⎘ optimera for that metric.\n - TODO.md open items → select the highest-severity open item, then route by shape: narrow one-cycle TODOs suggest ⧉ realisera; contract-shaped, multi-surface, dependency-heavy, migration, schema, metadata, validation, or acceptance-risky TODOs suggest ≡ planera first. Prefer items that unlock product evidence or future plans.\n - Pending DECISIONS.md follow-up → suggest ❈ resonera for the named unresolved decision.\n - Vision exists but no plan, objective, decision follow-up, or TODO work is active → suggest ≡ planera.\n - No vision, no executable follow-ups, and no active plan → suggest ⛥ visionera to choose a direction.\n\n Do not let \u0060healthy + plan complete → ⛥\u0060 override active TODO, OBJECTIVE, DECISIONS, or a newer active PLAN. A completed plan means \"look for the next executable follow-up,\" not automatically \"refresh vision.\"\n\n5. **Route**: present one concrete suggestion and let the user choose. No coercion.\n - Do not list generic skill options unless the user asks for the full menu.\n - The waiting bullet should ask whether to run the named action, not ask the user to pick from skills.\n - On the initial Agentera/hej brief, use a free-form continuation prompt rather than a native question menu unless the user asked for bounded choices or the suggested next step is a state-changing Proceed/Cancel handoff.\n - Mid-conversation, use the native question tool only for at least two meaningful non-terminal next actions or a consequential Proceed/Cancel decision; \u0060Done\u0060 and free-form/custom answer affordances do not count as alternatives.\n - State-changing handoffs are consequential Proceed/Cancel decisions even when there is only one suggested action. State-changing means the proposed next step may write artifacts, edit code, run optimization or orchestration cycles, apply migrations, refresh app/runtime state, or otherwise mutate project/runtime state.\n - Use the behavior rule first, with common examples such as ⧉ realisera, ≡ planera when creating or updating plans, ▤ dokumentera when writing docs, ⎘ optimera when running or applying optimization cycles, and ⎈ orkestrera when dispatching cycles.\n - For one non-mutating suggested action, clear free-form acceptance such as \u0060yes\u0060, \u0060start\u0060, \u0060do it\u0060, or \u0060run <capability>\u0060 confirms that suggestion. Ambiguous replies get one clarifying question.\n\n---\n\n## Step 2: Route\n\nNarration voice: \"Kicking off [skill]...\" or similarly brief.\n\nInvoke the capability. Hej's work is done.\n\nUnclear mapping? Ask **one** clarifying question. No compound questions.\n\n---\n\n## Safety rails\n\n<critical>\n- NEVER execute implementation work. Hej orients and routes; it does not build, audit, plan, or decide.\n- NEVER dump full artifact contents verbatim. Summarize concisely; the user can read the files themselves.\n- NEVER skip the briefing in returning mode. The user needs context before choosing a direction.\n- NEVER assume what the user wants without asking. Present the suggestion, then wait for confirmation.\n- NEVER modify any state artifact. Hej is strictly read-only.\n- NEVER route to a capability without the user's consent. Suggest, don't force.\n</critical>\n\n---\n\n## Exit signals\n\nReport one of these statuses at workflow completion (protocol refs: EX1-EX4).\n\nFormat: emit \u0060⌂ hej · <status>\u0060 on its own line below the dashboard's closing code fence, followed by a one-sentence summary of what was delivered. For \u0060flagged\u0060 (EX2), \u0060stuck\u0060 (EX3), and \u0060waiting\u0060 (EX4), add a \u0060▸\u0060 (VT15) bullet below the summary identifying what the user needs to decide or act on next. The exit marker is mandatory and uses hej's canonical glyph \u0060⌂\u0060 (SG1, U+2302).\n\n- **complete** (EX1): Briefing delivered (or welcome shown) and user successfully routed to a capability.\n- **flagged** (EX2): Briefing delivered but critical attention items were found: critical issues, degrading health, loop stop-condition triggers. Each concern is listed explicitly.\n- **stuck** (EX3): Cannot orient: the working directory is not a code project, no readable files exist, or permissions prevent scanning.\n- **waiting** (EX4): Briefing or welcome delivered, suggestion made, awaiting user input on which direction to take.\n\n---\n\n## Cross-capability integration\n\nHej is the suite entry point. It reads other capabilities' artifacts, produces\nno artifact, and outputs only a briefing plus routing suggestion.\n"`);
5
+ export default instructions;
6
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/capabilities/hej/instructions.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qFAAqF;AACrF,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAA,8ioBAA8ioB,CAAC,CAAC;AACzmoB,eAAe,YAAY,CAAC"}
@@ -0,0 +1,38 @@
1
+ // Capability instruction barrel (D65).
2
+ // Re-exports each capability's prose constant as a named export plus a
3
+ // CAPABILITY_INSTRUCTIONS lookup keyed by capability name. The CLI loader
4
+ // imports this barrel from `../capabilities/index.js` so source-mode (vitest)
5
+ // and dist-mode (npm install) resolve the same path.
6
+ import { instructions as hejInstructions } from "./hej/instructions.js";
7
+ import { instructions as visioneraInstructions } from "./visionera/instructions.js";
8
+ import { instructions as resoneraInstructions } from "./resonera/instructions.js";
9
+ import { instructions as inspireraInstructions } from "./inspirera/instructions.js";
10
+ import { instructions as planeraInstructions } from "./planera/instructions.js";
11
+ import { instructions as realiseraInstructions } from "./realisera/instructions.js";
12
+ import { instructions as optimeraInstructions } from "./optimera/instructions.js";
13
+ import { instructions as inspekteraInstructions } from "./inspektera/instructions.js";
14
+ import { instructions as dokumenteraInstructions } from "./dokumentera/instructions.js";
15
+ import { instructions as profileraInstructions } from "./profilera/instructions.js";
16
+ import { instructions as visualiseraInstructions } from "./visualisera/instructions.js";
17
+ import { instructions as orkestreraInstructions } from "./orkestrera/instructions.js";
18
+ export const CAPABILITY_INSTRUCTIONS = {
19
+ hej: hejInstructions,
20
+ visionera: visioneraInstructions,
21
+ resonera: resoneraInstructions,
22
+ inspirera: inspireraInstructions,
23
+ planera: planeraInstructions,
24
+ realisera: realiseraInstructions,
25
+ optimera: optimeraInstructions,
26
+ inspektera: inspekteraInstructions,
27
+ dokumentera: dokumenteraInstructions,
28
+ profilera: profileraInstructions,
29
+ visualisera: visualiseraInstructions,
30
+ orkestrera: orkestreraInstructions,
31
+ };
32
+ export function capabilityInstructionModulePath(capability) {
33
+ return `packages/cli/src/capabilities/${capability}/instructions.ts`;
34
+ }
35
+ export function capabilityStartupCommand(capability) {
36
+ return `agentera prime --context ${capability} --format json`;
37
+ }
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,uEAAuE;AACvE,0EAA0E;AAC1E,8EAA8E;AAC9E,qDAAqD;AACrD,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,YAAY,IAAI,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,EAAE,YAAY,IAAI,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,GAAG,EAAE,eAAe;IACpB,SAAS,EAAE,qBAAqB;IAChC,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,qBAAqB;IAChC,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,qBAAqB;IAChC,QAAQ,EAAE,oBAAoB;IAC9B,UAAU,EAAE,sBAAsB;IAClC,WAAW,EAAE,uBAAuB;IACpC,SAAS,EAAE,qBAAqB;IAChC,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEF,MAAM,UAAU,+BAA+B,CAAC,UAAkB;IAChE,OAAO,iCAAiC,UAAU,kBAAkB,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO,4BAA4B,UAAU,gBAAgB,CAAC;AAChE,CAAC"}