agentera 0.0.0 → 3.0.0-dev.1

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 (256) hide show
  1. package/README.md +6 -45
  2. package/bundle/.agentera-npx-bundle.json +4 -0
  3. package/bundle/references/adapters/cursor.md +213 -0
  4. package/bundle/references/adapters/opencode.md +530 -0
  5. package/bundle/references/adapters/package-manifest-interface-model.yaml +337 -0
  6. package/bundle/references/adapters/package-registry.yaml +247 -0
  7. package/bundle/references/adapters/package-surface-characterization.md +48 -0
  8. package/bundle/references/adapters/runtime-adapter-characterization.md +79 -0
  9. package/bundle/references/adapters/runtime-adapter-interface-model.yaml +200 -0
  10. package/bundle/references/adapters/runtime-adapter-registry.yaml +548 -0
  11. package/bundle/references/adapters/runtime-feature-parity.md +189 -0
  12. package/bundle/references/analysis/benchmark.md +267 -0
  13. package/bundle/references/analysis/startup-measurement-contract.yaml +424 -0
  14. package/bundle/references/artifacts/artifact-registry-interface-model.yaml +288 -0
  15. package/bundle/references/cli/agent-ready-state-contract.yaml +950 -0
  16. package/bundle/references/cli/app-lifecycle-vocabulary.yaml +241 -0
  17. package/bundle/references/cli/audience-namespace-cli-migration.yaml +355 -0
  18. package/bundle/references/cli/bundle-skill-vocabulary.yaml +278 -0
  19. package/bundle/references/cli/capability-instruction-contract.yaml +123 -0
  20. package/bundle/references/cli/capability-tool-classification.yaml +53 -0
  21. package/bundle/references/cli/routing-execution-vocabulary.yaml +281 -0
  22. package/bundle/references/cli/update-channels.yaml +147 -0
  23. package/bundle/references/cli/vocabulary-index.yaml +160 -0
  24. package/bundle/references/cli/vocabulary.md +566 -0
  25. package/bundle/references/meta/documentation-inventory.md +43 -0
  26. package/bundle/references/v1-section-mapping.md +47 -0
  27. package/bundle/registry.json +39 -0
  28. package/bundle/skills/agentera/.claude-plugin/plugin.json +27 -0
  29. package/bundle/skills/agentera/SKILL.md +470 -0
  30. package/bundle/skills/agentera/agents/dokumentera.toml +6 -0
  31. package/bundle/skills/agentera/agents/hej.toml +6 -0
  32. package/bundle/skills/agentera/agents/inspektera.toml +6 -0
  33. package/bundle/skills/agentera/agents/inspirera.toml +6 -0
  34. package/bundle/skills/agentera/agents/optimera.toml +6 -0
  35. package/bundle/skills/agentera/agents/orkestrera.toml +6 -0
  36. package/bundle/skills/agentera/agents/planera.toml +6 -0
  37. package/bundle/skills/agentera/agents/profilera.toml +6 -0
  38. package/bundle/skills/agentera/agents/realisera.toml +6 -0
  39. package/bundle/skills/agentera/agents/resonera.toml +6 -0
  40. package/bundle/skills/agentera/agents/visionera.toml +6 -0
  41. package/bundle/skills/agentera/agents/visualisera.toml +6 -0
  42. package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +428 -0
  43. package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +73 -0
  44. package/bundle/skills/agentera/capabilities/dokumentera/schemas/exit.yaml +35 -0
  45. package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +35 -0
  46. package/bundle/skills/agentera/capabilities/dokumentera/schemas/validation.yaml +139 -0
  47. package/bundle/skills/agentera/capabilities/hej/instructions.md +331 -0
  48. package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +69 -0
  49. package/bundle/skills/agentera/capabilities/hej/schemas/exit.yaml +32 -0
  50. package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +58 -0
  51. package/bundle/skills/agentera/capabilities/hej/schemas/validation.yaml +55 -0
  52. package/bundle/skills/agentera/capabilities/inspektera/instructions.md +514 -0
  53. package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +76 -0
  54. package/bundle/skills/agentera/capabilities/inspektera/schemas/exit.yaml +36 -0
  55. package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +38 -0
  56. package/bundle/skills/agentera/capabilities/inspektera/schemas/validation.yaml +113 -0
  57. package/bundle/skills/agentera/capabilities/inspirera/instructions.md +280 -0
  58. package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +24 -0
  59. package/bundle/skills/agentera/capabilities/inspirera/schemas/exit.yaml +33 -0
  60. package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +34 -0
  61. package/bundle/skills/agentera/capabilities/inspirera/schemas/validation.yaml +58 -0
  62. package/bundle/skills/agentera/capabilities/optimera/instructions.md +437 -0
  63. package/bundle/skills/agentera/capabilities/optimera/schemas/artifacts.yaml +69 -0
  64. package/bundle/skills/agentera/capabilities/optimera/schemas/exit.yaml +35 -0
  65. package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +39 -0
  66. package/bundle/skills/agentera/capabilities/optimera/schemas/validation.yaml +91 -0
  67. package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +433 -0
  68. package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +64 -0
  69. package/bundle/skills/agentera/capabilities/orkestrera/schemas/exit.yaml +34 -0
  70. package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +42 -0
  71. package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +107 -0
  72. package/bundle/skills/agentera/capabilities/planera/instructions.md +368 -0
  73. package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +62 -0
  74. package/bundle/skills/agentera/capabilities/planera/schemas/exit.yaml +33 -0
  75. package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +34 -0
  76. package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +61 -0
  77. package/bundle/skills/agentera/capabilities/profilera/instructions.md +419 -0
  78. package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +18 -0
  79. package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +34 -0
  80. package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +45 -0
  81. package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +57 -0
  82. package/bundle/skills/agentera/capabilities/realisera/instructions.md +403 -0
  83. package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +80 -0
  84. package/bundle/skills/agentera/capabilities/realisera/schemas/exit.yaml +35 -0
  85. package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +39 -0
  86. package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +110 -0
  87. package/bundle/skills/agentera/capabilities/resonera/instructions.md +329 -0
  88. package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +47 -0
  89. package/bundle/skills/agentera/capabilities/resonera/schemas/exit.yaml +35 -0
  90. package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +46 -0
  91. package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +77 -0
  92. package/bundle/skills/agentera/capabilities/visionera/instructions.md +309 -0
  93. package/bundle/skills/agentera/capabilities/visionera/schemas/artifacts.yaml +57 -0
  94. package/bundle/skills/agentera/capabilities/visionera/schemas/exit.yaml +35 -0
  95. package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +41 -0
  96. package/bundle/skills/agentera/capabilities/visionera/schemas/validation.yaml +74 -0
  97. package/bundle/skills/agentera/capabilities/visualisera/instructions.md +400 -0
  98. package/bundle/skills/agentera/capabilities/visualisera/schemas/artifacts.yaml +44 -0
  99. package/bundle/skills/agentera/capabilities/visualisera/schemas/exit.yaml +34 -0
  100. package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +33 -0
  101. package/bundle/skills/agentera/capabilities/visualisera/schemas/validation.yaml +80 -0
  102. package/bundle/skills/agentera/capability_schema_contract.yaml +385 -0
  103. package/bundle/skills/agentera/protocol.yaml +463 -0
  104. package/bundle/skills/agentera/references/contract.md +1039 -0
  105. package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +60 -0
  106. package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +461 -0
  107. package/bundle/skills/agentera/schemas/artifacts/design.yaml +55 -0
  108. package/bundle/skills/agentera/schemas/artifacts/docs.yaml +402 -0
  109. package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +373 -0
  110. package/bundle/skills/agentera/schemas/artifacts/health.yaml +484 -0
  111. package/bundle/skills/agentera/schemas/artifacts/objective.yaml +399 -0
  112. package/bundle/skills/agentera/schemas/artifacts/plan.yaml +342 -0
  113. package/bundle/skills/agentera/schemas/artifacts/progress.yaml +325 -0
  114. package/bundle/skills/agentera/schemas/artifacts/todo.yaml +110 -0
  115. package/bundle/skills/agentera/schemas/artifacts/vision.yaml +262 -0
  116. package/bundle/skills/hej/.claude-plugin/plugin.json +6 -0
  117. package/bundle/skills/hej/SKILL.md +69 -0
  118. package/bundle/skills/hej/agents/hej.toml +11 -0
  119. package/bundle/skills/hej/agents/openai.yaml +8 -0
  120. package/dist/analytics/extractCorpus.js +1791 -0
  121. package/dist/analytics/extractCorpus.js.map +1 -0
  122. package/dist/analytics/usageStats.js +487 -0
  123. package/dist/analytics/usageStats.js.map +1 -0
  124. package/dist/bin/agentera.js +4 -0
  125. package/dist/bin/agentera.js.map +1 -0
  126. package/dist/cli/appContext.js +226 -0
  127. package/dist/cli/appContext.js.map +1 -0
  128. package/dist/cli/argvalidate.js +41 -0
  129. package/dist/cli/argvalidate.js.map +1 -0
  130. package/dist/cli/capabilityContext.js +2421 -0
  131. package/dist/cli/capabilityContext.js.map +1 -0
  132. package/dist/cli/commands/backfill.js +84 -0
  133. package/dist/cli/commands/backfill.js.map +1 -0
  134. package/dist/cli/commands/capability.js +44 -0
  135. package/dist/cli/commands/capability.js.map +1 -0
  136. package/dist/cli/commands/compact.js +148 -0
  137. package/dist/cli/commands/compact.js.map +1 -0
  138. package/dist/cli/commands/doctor.js +180 -0
  139. package/dist/cli/commands/doctor.js.map +1 -0
  140. package/dist/cli/commands/lint.js +179 -0
  141. package/dist/cli/commands/lint.js.map +1 -0
  142. package/dist/cli/commands/prime.js +544 -0
  143. package/dist/cli/commands/prime.js.map +1 -0
  144. package/dist/cli/commands/query.js +346 -0
  145. package/dist/cli/commands/query.js.map +1 -0
  146. package/dist/cli/commands/report.js +210 -0
  147. package/dist/cli/commands/report.js.map +1 -0
  148. package/dist/cli/commands/schema.js +306 -0
  149. package/dist/cli/commands/schema.js.map +1 -0
  150. package/dist/cli/commands/state.js +1012 -0
  151. package/dist/cli/commands/state.js.map +1 -0
  152. package/dist/cli/commands/upgrade.js +48 -0
  153. package/dist/cli/commands/upgrade.js.map +1 -0
  154. package/dist/cli/commands/validate.js +519 -0
  155. package/dist/cli/commands/validate.js.map +1 -0
  156. package/dist/cli/commands/verify.js +204 -0
  157. package/dist/cli/commands/verify.js.map +1 -0
  158. package/dist/cli/dispatch.js +958 -0
  159. package/dist/cli/dispatch.js.map +1 -0
  160. package/dist/cli/orientation.js +595 -0
  161. package/dist/cli/orientation.js.map +1 -0
  162. package/dist/cli/prime-blob.js +3 -0
  163. package/dist/cli/prime-blob.js.map +1 -0
  164. package/dist/cli/stateQuery.js +292 -0
  165. package/dist/cli/stateQuery.js.map +1 -0
  166. package/dist/cli/structured.js +18 -0
  167. package/dist/cli/structured.js.map +1 -0
  168. package/dist/core/difflib.js +274 -0
  169. package/dist/core/difflib.js.map +1 -0
  170. package/dist/core/git.js +43 -0
  171. package/dist/core/git.js.map +1 -0
  172. package/dist/core/paths.js +50 -0
  173. package/dist/core/paths.js.map +1 -0
  174. package/dist/core/pyjson.js +101 -0
  175. package/dist/core/pyjson.js.map +1 -0
  176. package/dist/core/sourceRoot.js +72 -0
  177. package/dist/core/sourceRoot.js.map +1 -0
  178. package/dist/core/toml.js +11 -0
  179. package/dist/core/toml.js.map +1 -0
  180. package/dist/core/yaml.js +25 -0
  181. package/dist/core/yaml.js.map +1 -0
  182. package/dist/eval/evalSkills.js +258 -0
  183. package/dist/eval/evalSkills.js.map +1 -0
  184. package/dist/eval/semanticEval.js +148 -0
  185. package/dist/eval/semanticEval.js.map +1 -0
  186. package/dist/eval/semanticFixtures.js +227 -0
  187. package/dist/eval/semanticFixtures.js.map +1 -0
  188. package/dist/hooks/common.js +160 -0
  189. package/dist/hooks/common.js.map +1 -0
  190. package/dist/hooks/compaction.js +935 -0
  191. package/dist/hooks/compaction.js.map +1 -0
  192. package/dist/hooks/cursorPreToolUse.js +19 -0
  193. package/dist/hooks/cursorPreToolUse.js.map +1 -0
  194. package/dist/hooks/cursorSessionStart.js +71 -0
  195. package/dist/hooks/cursorSessionStart.js.map +1 -0
  196. package/dist/hooks/sessionStart.js +209 -0
  197. package/dist/hooks/sessionStart.js.map +1 -0
  198. package/dist/hooks/sessionStop.js +212 -0
  199. package/dist/hooks/sessionStop.js.map +1 -0
  200. package/dist/hooks/validateArtifact.js +933 -0
  201. package/dist/hooks/validateArtifact.js.map +1 -0
  202. package/dist/registries/artifactRegistry.js +206 -0
  203. package/dist/registries/artifactRegistry.js.map +1 -0
  204. package/dist/registries/capabilityContract.js +310 -0
  205. package/dist/registries/capabilityContract.js.map +1 -0
  206. package/dist/registries/packageRegistry.js +641 -0
  207. package/dist/registries/packageRegistry.js.map +1 -0
  208. package/dist/registries/runtimeAdapterRegistry.js +315 -0
  209. package/dist/registries/runtimeAdapterRegistry.js.map +1 -0
  210. package/dist/setup/codex.js +1056 -0
  211. package/dist/setup/codex.js.map +1 -0
  212. package/dist/setup/copilot.js +227 -0
  213. package/dist/setup/copilot.js.map +1 -0
  214. package/dist/setup/cursor.js +127 -0
  215. package/dist/setup/cursor.js.map +1 -0
  216. package/dist/setup/doctor.js +1276 -0
  217. package/dist/setup/doctor.js.map +1 -0
  218. package/dist/state/installRoot.js +279 -0
  219. package/dist/state/installRoot.js.map +1 -0
  220. package/dist/state/progressCommit.js +289 -0
  221. package/dist/state/progressCommit.js.map +1 -0
  222. package/dist/state/startupAnalysis.js +1953 -0
  223. package/dist/state/startupAnalysis.js.map +1 -0
  224. package/dist/upgrade/appModel.js +189 -0
  225. package/dist/upgrade/appModel.js.map +1 -0
  226. package/dist/upgrade/channels.js +208 -0
  227. package/dist/upgrade/channels.js.map +1 -0
  228. package/dist/upgrade/compatibility.js +201 -0
  229. package/dist/upgrade/compatibility.js.map +1 -0
  230. package/dist/upgrade/doctor.js +373 -0
  231. package/dist/upgrade/doctor.js.map +1 -0
  232. package/dist/upgrade/migrateArtifactsV2ToV3.js +332 -0
  233. package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
  234. package/dist/upgrade/runtimeMigration.js +484 -0
  235. package/dist/upgrade/runtimeMigration.js.map +1 -0
  236. package/dist/upgrade/upgradeCommands.js +36 -0
  237. package/dist/upgrade/upgradeCommands.js.map +1 -0
  238. package/dist/upgrade/upgradeOrchestrator.js +299 -0
  239. package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
  240. package/dist/upgrade/versionResolution.js +179 -0
  241. package/dist/upgrade/versionResolution.js.map +1 -0
  242. package/dist/validate/appHomeContract.js +150 -0
  243. package/dist/validate/appHomeContract.js.map +1 -0
  244. package/dist/validate/capability.js +412 -0
  245. package/dist/validate/capability.js.map +1 -0
  246. package/dist/validate/crossCapability.js +145 -0
  247. package/dist/validate/crossCapability.js.map +1 -0
  248. package/dist/validate/lifecycleAdapters.js +772 -0
  249. package/dist/validate/lifecycleAdapters.js.map +1 -0
  250. package/dist/validate/selfAudit.js +107 -0
  251. package/dist/validate/selfAudit.js.map +1 -0
  252. package/package.json +28 -8
  253. package/LICENSE +0 -201
  254. package/bin/agentera.mjs +0 -50
  255. package/lib/exec.mjs +0 -116
  256. package/lib/resolve.mjs +0 -129
@@ -0,0 +1,113 @@
1
+ VALIDATION:
2
+ 1:
3
+ id: V1
4
+ rule: read_only_codebase
5
+ description: >-
6
+ Inspektera MUST NOT modify any source code files. It is a read-only
7
+ assessment capability. Other capabilities fix what inspektera finds.
8
+ severity: critical
9
+ checks:
10
+ - "No source code files are modified during audit"
11
+ 2:
12
+ id: V2
13
+ rule: confidence_threshold
14
+ description: >-
15
+ Findings below 50 confidence (protocol: below CS3 range) MUST be
16
+ discarded. Findings in the 50-69 range (CS3) MUST be marked as "info"
17
+ (SF3) regardless of apparent severity. This prevents speculative
18
+ findings from being presented as definitive problems.
19
+ severity: critical
20
+ checks:
21
+ - "No finding has confidence below 50"
22
+ - "Findings with confidence 50-69 are severity info (SF3)"
23
+ 3:
24
+ id: V3
25
+ rule: decisions_respected
26
+ description: >-
27
+ Findings that contradict deliberate decisions documented in DECISIONS.md
28
+ MUST be discarded or downgraded to info (SF3). A deliberate decision is
29
+ not a finding; it is an implementation of that decision.
30
+ severity: critical
31
+ checks:
32
+ - "No finding contradicts a known deliberate decision"
33
+ 4:
34
+ id: V4
35
+ rule: no_duplicate_findings
36
+ description: >-
37
+ Issues already tracked in TODO.md MUST NOT be reported as new findings.
38
+ Known issues may be referenced for trajectory comparison but not
39
+ re-filed at their original severity.
40
+ severity: warning
41
+ checks:
42
+ - "No finding duplicates an existing TODO.md entry"
43
+ 5:
44
+ id: V5
45
+ rule: user_confirmation_for_filing
46
+ description: >-
47
+ Findings MUST NOT be filed to TODO.md without explicit user confirmation.
48
+ Present the findings and ask; the user decides what to track.
49
+ severity: critical
50
+ checks:
51
+ - "TODO.md is only modified after user confirmation"
52
+ 6:
53
+ id: V6
54
+ rule: exit_marker_required
55
+ description: >-
56
+ Every inspektera invocation MUST emit an exit marker. The marker uses
57
+ the canonical glyph ⛶ (SG3) in the format ⛶ inspektera · <status>
58
+ where status is one of EX1-EX4.
59
+ severity: critical
60
+ checks:
61
+ - "Exit marker present after audit"
62
+ - "Exit marker uses glyph ⛶ (SG3)"
63
+ - "Exit marker status is one of complete, flagged, stuck, waiting"
64
+ 7:
65
+ id: V7
66
+ rule: evidence_context_first
67
+ description: >-
68
+ Inspektera evaluation startup MUST begin with `agentera prime --context
69
+ inspektera --format json` and use complete CLI `evidence_context` before
70
+ raw plan, progress, docs, health, TODO, or decisions artifacts.
71
+ severity: critical
72
+ checks:
73
+ - "Evidence context is requested through prime --context before raw artifacts"
74
+ - "Complete evidence_context is used for evaluation target, criteria, evidence, caveats, and residual risks"
75
+ 8:
76
+ id: V8
77
+ rule: evidence_context_fallback_before_raw
78
+ description: >-
79
+ When evidence_context is absent, incomplete, or caveated for needed state,
80
+ Inspektera MUST run listed existing CLI fallback commands before any last-resort
81
+ raw artifact read.
82
+ severity: critical
83
+ checks:
84
+ - "evidence_context.fallback_commands are attempted before raw artifact reads"
85
+ - "capability_context.state.fallback_commands is used when evidence_context is unavailable"
86
+ - "Raw artifact reads are last-resort diagnostics, not normal evaluation startup"
87
+ 9:
88
+ id: V9
89
+ rule: evidence_context_caveats_preserved
90
+ description: >-
91
+ Inspektera reports MUST preserve evidence_context caveats for stale app/profile
92
+ state, compacted decisions, protected-state boundaries, unavailable version or
93
+ publication evidence, manual-check states, and residual risks instead of hiding,
94
+ flattening, or reconstructing them.
95
+ severity: critical
96
+ checks:
97
+ - "state_family_caveats are preserved in evaluation results"
98
+ - "residual_risks.attributed_items are preserved with category, status, message, and provenance"
99
+ - "Compacted decision, protected-state, version, publication, remote, app, and profile caveats are not reconstructed or hidden"
100
+ 10:
101
+ id: V10
102
+ rule: satisfaction_authority_boundary
103
+ description: >-
104
+ When Inspektera touches decision satisfaction, it may report provisional
105
+ satisfaction with evidence but MUST NOT user-confirm satisfaction. Missing,
106
+ compacted, open, provisional, or review-needed satisfaction state remains a
107
+ caveat and review pressure; automation must not reconstruct hidden outcomes
108
+ or claim it proved user intent.
109
+ severity: critical
110
+ checks:
111
+ - "Provisional satisfaction requires evidence"
112
+ - "Only the user confirms final satisfaction"
113
+ - "Missing or compacted satisfaction caveats are preserved"
@@ -0,0 +1,280 @@
1
+ # INSPIRERA
2
+
3
+ **Insight Navigation: Source Pattern Identification and Resonance. Evaluate, Reframe, Assimilate**
4
+
5
+ Analyze an external resource and map its ideas to a target project. Output a structured markdown analysis the user can navigate and act on.
6
+
7
+ Skill introduction: `─── ⬚ inspirera · analysis ───`
8
+
9
+ ---
10
+
11
+ ## Visual identity
12
+
13
+ Glyph: **⬚** (protocol ref: SG10). Used in the mandatory exit marker.
14
+
15
+ ---
16
+
17
+ ## State artifacts
18
+
19
+ No dedicated state file. Writes to other capabilities' artifacts.
20
+
21
+ | Artifact | Purpose | Path |
22
+ |----------|---------|------|
23
+ | TODO.md | File actionable findings for realisera (severity per protocol SF1-SF3) | `TODO.md` (per DOCS.md mapping) |
24
+ | VISION.md | Refine direction when inspiration shifts thinking | `VISION.md` (per DOCS.md mapping) |
25
+ | PROFILE.md | Decision profile for persona-grounded applicability judgments | `$PROFILERA_PROFILE_DIR/PROFILE.md` (global, not project-scoped) |
26
+
27
+ ### Artifact path resolution
28
+
29
+ Before reading or writing any artifact, check if .agentera/docs.yaml exists. If it has an Artifact Mapping section, use the path specified for each canonical filename (TODO.md, VISION.md, etc.). If .agentera/docs.yaml doesn't exist or has no mapping for a given artifact, use the default layout: TODO.md, CHANGELOG.md, and DESIGN.md at the project root; canonical VISION.md at .agentera/vision.yaml; other agent-facing artifacts at .agentera/*.yaml. This applies to all artifact references in this capability, including cross-capability writes (TODO.md, VISION.md).
30
+
31
+ PROFILE.md is global, not project-scoped. Its path is determined by profilera: `$PROFILERA_PROFILE_DIR/PROFILE.md` (default: `$XDG_DATA_HOME/agentera/PROFILE.md`). Check the profilera-determined path directly rather than falling back to the project root.
32
+
33
+ ### Contract values
34
+
35
+ Contract values are inlined where referenced. Visual tokens from protocol: confidence tokens VT9-VT11 (━/─/┄), list item VT15 (▸), inline separator VT16 (·), section divider VT14. Skill glyph SG10 for exit markers. Exit signals EX1-EX4 for status reporting. Severity finding levels SF1-SF3 for TODO.md entries.
36
+
37
+ `references/contract.md` (at the v2 skill location `skills/agentera/references/contract.md`) remains available as a full-spec reference for ambiguous cases or cross-checking.
38
+
39
+ ---
40
+
41
+ Step markers: display `── step N/5: verb` before each step.
42
+ Steps: identify, read, explore, map, deliver.
43
+
44
+ ---
45
+
46
+ ## Step 1: Identify source and target
47
+
48
+ From the user's message, extract:
49
+
50
+ - **Source**: the external URL (GitHub repo, article, docs, HN thread, etc.)
51
+ - **Target**: the user's project, which could be any of:
52
+ - A **GitHub repo URL** → explore via the optional GitHub MCP integration
53
+ - A **local path** or project name → explore via filesystem tools
54
+ - The **current working directory** → if the user says "my project" / "what I'm building" without a URL, and they're clearly working in a project, treat cwd as the target
55
+ - **Absent** → if truly no target is implied, skip Steps 3–4 and do source-only analysis
56
+
57
+ ---
58
+
59
+ ## Step 2: Read the source
60
+
61
+ This should feel like a colleague diving into something interesting, genuinely curious, reading deeply, forming opinions as you go. Not a report generator collecting data points.
62
+
63
+ ### GitHub repos
64
+
65
+ Use the optional GitHub MCP integration to explore deeply:
66
+
67
+ 1. List root directory structure
68
+ 2. Read README
69
+ 3. Read key source directories until you understand: core abstractions, design patterns,
70
+ notable primitives, dependencies, clever approaches worth borrowing
71
+
72
+ Go deep and don't stop at the README. If the optional GitHub MCP integration
73
+ returns errors, fall back to public pages or note the limitation.
74
+
75
+ ### Articles, blog posts, docs pages
76
+
77
+ Fetch full content. Extract core thesis, named concepts/patterns, code samples, and referenced tools. If paywalled, try reader-mode variant; if that fails, note the limitation.
78
+
79
+ ### Hacker News threads
80
+
81
+ Read both the linked article and top comments. HN comments often contain the most useful distillation. Treat as signal.
82
+
83
+ ### Known libraries
84
+
85
+ For well-known libraries, also check context7 for up-to-date docs beyond the README.
86
+
87
+ Before proceeding to target analysis: in your response, list the 3-5 most transferable concepts from the source. These survive if the source file reads are cleared.
88
+
89
+ ---
90
+
91
+ ## Step 3: Read the target project
92
+
93
+ Choose the exploration strategy based on the target type identified in Step 1.
94
+
95
+ ### Local projects (current directory or local path)
96
+
97
+ Common case. Use filesystem tools (faster, includes uncommitted work):
98
+
99
+ 1. `Glob` to map the directory structure (e.g. `**/*.{ts,go,py,rs}`)
100
+ 2. Read README.md if one exists
101
+ 3. Check dependency manifests (`package.json`, `go.mod`, `Cargo.toml`, `pyproject.toml`, etc.)
102
+ 4. `Grep` for patterns, imports, or abstractions relevant to the source's concepts
103
+ 5. Read key source files to understand architecture and current patterns
104
+
105
+ ### Remote GitHub repos
106
+
107
+ Use the optional GitHub MCP integration:
108
+
109
+ 1. List the root directory structure
110
+ 2. Read the README
111
+ 3. Read dependency manifests and key source files
112
+
113
+ ### Build understanding of
114
+
115
+ Language, stack, dependencies, architecture, patterns, and problems being solved.
116
+
117
+ ### Check for existing usage
118
+
119
+ Does the target already use the source (or a fork/alternative)?
120
+
121
+ - **Already using**: "Getting the most out of it?" Focus on underused features and better patterns.
122
+ - **Using alternative**: "Worth switching?" Compare approaches and migration cost.
123
+ - **Not using**: "Should you adopt?" This is the default framing.
124
+
125
+ ---
126
+
127
+ ## Step 4: Map concepts across
128
+
129
+ With both codebases understood, reason about applicability:
130
+
131
+ - What is the source doing that the target should be?
132
+ - Abstractions that simplify current complexity?
133
+ - Patterns the target implements manually or poorly?
134
+ - Primitives worth borrowing or adapting?
135
+ - Source doing something the target does, but better?
136
+ - Fundamentally incompatible? Say so clearly.
137
+ - Adoption cost: one-file change or multi-sprint refactor?
138
+
139
+ ---
140
+
141
+ ## Step 5: Deliver the analysis
142
+
143
+ The sharp colleague, here to share what you dug up, not file a report. Open with your take before the structured sections: what excited you, what surprised you, what the user should care about most. "Here's what I found and what matters for us." The structured analysis follows, but the human read comes first.
144
+
145
+ Write a **structured markdown analysis**:
146
+
147
+ ### Output format
148
+
149
+ ````markdown
150
+ # [Source Name] → [Target Name]: Cross-Pollination Analysis
151
+
152
+ ## TL;DR
153
+ One or two sentences. Is this worth pursuing? What's the strongest single takeaway?
154
+
155
+ ## Source Overview
156
+ Brief summary of what the source does and its core design philosophy.
157
+
158
+ ## Key Concepts
159
+
160
+ ### [Concept Name]
161
+ What it is, why it's interesting, and concretely where/how it applies to the target.
162
+
163
+ ### [Concept Name]
164
+ ...repeat for each significant concept (typically 2–5)
165
+
166
+ Reason through concept applicability in your response text. The Applicability Matrix below
167
+ should contain only conclusions, not reasoning chains.
168
+ Output constraint: ≤15 words per matrix cell.
169
+
170
+ ## Applicability Matrix
171
+
172
+ | Concept | Relevance | Effort | Where in [Target] | Already Partially Done? |
173
+ |---------|-----------|--------|-------------------|------------------------|
174
+ | ... | High/Med/Low | Low/Med/High | specific module or file | Yes/No |
175
+
176
+ ## What Doesn't Apply
177
+ Honest assessment of concepts/patterns that look interesting but don't fit, and why.
178
+ Being clear about what *not* to adopt is as valuable as the recommendations.
179
+
180
+ ## Recommended Next Steps
181
+ ▸ [action] · [specific file or module]
182
+ ▸ [action] · [specific file or module]
183
+ Ordered by value/effort ratio.
184
+ ````
185
+
186
+ **Tone**: direct, technically fluent. Skip empty sections. Lead with highest signal.
187
+
188
+ Offer to go deeper: prototype a change, explore a concept with code, compare alternatives.
189
+
190
+ ### No target given
191
+
192
+ Surface transferable concepts in general terms. Skip Applicability Matrix. Ask if the user wants to map to a specific project.
193
+
194
+ ---
195
+
196
+ ## Safety rails
197
+
198
+ <critical>
199
+ - NEVER modify code in the target project. Inspirera analyzes; other capabilities implement.
200
+ - NEVER write to TODO.md or VISION.md without explicit user confirmation. Present findings and get approval before filing.
201
+ - NEVER present shallow analysis as deep insight. If you haven't read the source thoroughly, say so.
202
+ - NEVER recommend adoption without assessing fit. Every recommendation must consider the target project's constraints, stack, and principles.
203
+ - NEVER fabricate source content. Quote actual code and text from the source.
204
+ </critical>
205
+
206
+ ---
207
+
208
+ ## Exit signals
209
+
210
+ Report one of these statuses at workflow completion (protocol refs: EX1-EX4).
211
+
212
+ Format: emit `⬚ inspirera · <status>` on its own line, followed by a one-sentence summary. For `flagged` (EX2), `stuck` (EX3), and `waiting` (EX4), add a ▸ (VT15) bullet below the summary identifying what needs attention. The exit marker uses inspirera's canonical glyph ⬚ (SG10, U+2B1A).
213
+
214
+ - **complete** (EX1): Source was read deeply, target project was explored (if provided), concept mapping was completed, and a structured analysis with applicability matrix and recommended next steps was delivered.
215
+ - **flagged** (EX2): Analysis completed but with limitations worth surfacing: the source was paywalled or truncated, the target project was inaccessible, or key concepts could not be fully assessed for fit (e.g., incompatible language or paradigm).
216
+ - **stuck** (EX3): Cannot proceed because the source URL is inaccessible and no fallback content is available, or the target project specified does not exist and cannot be located.
217
+ - **waiting** (EX4): The source link was not provided or is malformed, or the target project is genuinely ambiguous and neither the current directory nor context resolves it.
218
+
219
+ ---
220
+
221
+ ## Cross-capability integration
222
+
223
+ Inspirera is part of a twelve-capability suite. Its analysis feeds naturally into the other capabilities.
224
+
225
+ ### Feeding into realisera
226
+
227
+ Add actionable findings to the project's TODO.md, classifying each by severity per protocol SF1-SF3. Or refine VISION.md's direction if the inspiration shifts thinking. The next realisera cycle picks up the changes automatically.
228
+
229
+ ### Feeding into optimera
230
+
231
+ When the source contains optimization techniques (performance patterns, algorithm improvements, caching strategies), optimera's Hypothesize step can draw on the analysis for its next experiment.
232
+
233
+ ### Informed by profilera
234
+
235
+ If a decision profile exists at `$PROFILERA_PROFILE_DIR/PROFILE.md`, read it directly and use effective confidence to weight applicability judgments. If PROFILE.md is missing, proceed without persona grounding.
236
+
237
+ ### Feeding into visionera
238
+
239
+ When the analysis shifts thinking about the project's direction (a new paradigm, a competitor's approach, or a user need not yet captured), the findings can inform vision refinement. Suggest ⛥ visionera to revisit VISION.md with the new context.
240
+
241
+ ### Feeding into planera
242
+
243
+ When the analysis recommends adopting patterns or libraries, planera can incorporate those recommendations into a plan's design section and task decomposition.
244
+
245
+ ### Feeding into resonera
246
+
247
+ When the analysis surfaces recommendations that require deliberation (competing approaches, unclear adoption cost, or tradeoffs the user needs to resolve), suggest ❈ resonera to think it through before acting. Resonera can evaluate which recommendations are actually worth adopting and capture the reasoning in DECISIONS.md.
248
+
249
+ ---
250
+
251
+ ## Getting started
252
+
253
+ ### Analyze a GitHub repo
254
+
255
+ ```
256
+ /agentera research https://github.com/org/repo
257
+ ```
258
+
259
+ Reads the repo, maps its patterns to your current project.
260
+
261
+ ### Analyze an article or docs page
262
+
263
+ ```
264
+ /agentera research https://example.com/blog/interesting-approach
265
+ ```
266
+
267
+ Extracts transferable concepts and assesses applicability.
268
+
269
+ ### Feed findings into the development loop
270
+
271
+ After analysis, file actionable findings to TODO.md for ⧉ realisera to pick up, or refine VISION.md if the research shifts your project's direction.
272
+
273
+ ---
274
+
275
+ ## Notes on depth vs. speed
276
+
277
+ - Read more files, not fewer. Shallow reads produce shallow analysis.
278
+ - Large repos: focus on modules most relevant to the concept, not everything.
279
+ - Explore source and target concurrently where possible.
280
+ - Always use the optional GitHub MCP integration for GitHub URLs.
@@ -0,0 +1,24 @@
1
+ ARTIFACTS:
2
+ 1:
3
+ id: A1
4
+ artifact_id: todo
5
+ local_role: produces
6
+ description: >-
7
+ Open problems by severity. Inspirera writes actionable findings here
8
+ (with user confirmation), classifying each by severity per protocol
9
+ SF1-SF3. Realisera picks up changes automatically in its next cycle.
10
+ 2:
11
+ id: A2
12
+ artifact_id: vision
13
+ local_role: produces
14
+ description: >-
15
+ Inspirera may refine project direction with user confirmation when the
16
+ analysis shifts thinking about the project's direction.
17
+ 3:
18
+ id: A3
19
+ artifact_id: profile
20
+ local_role: consumes
21
+ description: >-
22
+ Inspirera reads this via the effective profile script to weight
23
+ applicability judgments. If missing, inspirera proceeds without persona
24
+ grounding.
@@ -0,0 +1,33 @@
1
+ EXIT_CONDITIONS:
2
+ 1:
3
+ id: E1
4
+ condition: complete
5
+ description: >-
6
+ Source was read deeply, target project was explored (if provided),
7
+ concept mapping was completed, and a structured analysis with
8
+ applicability matrix and recommended next steps was delivered.
9
+ exit_signal: complete
10
+ 2:
11
+ id: E2
12
+ condition: flagged
13
+ description: >-
14
+ Analysis completed but with limitations worth surfacing: the source
15
+ was paywalled or truncated, the target project was inaccessible, or
16
+ key concepts could not be fully assessed for fit.
17
+ exit_signal: flagged
18
+ 3:
19
+ id: E3
20
+ condition: stuck
21
+ description: >-
22
+ Cannot proceed because the source URL is inaccessible and no fallback
23
+ content is available, or the target project specified does not exist
24
+ and cannot be located.
25
+ exit_signal: stuck
26
+ 4:
27
+ id: E4
28
+ condition: waiting
29
+ description: >-
30
+ The source link was not provided or is malformed, or the target
31
+ project is genuinely ambiguous and neither the current directory
32
+ nor context resolves it.
33
+ exit_signal: waiting
@@ -0,0 +1,34 @@
1
+ TRIGGERS:
2
+ 1:
3
+ id: T1
4
+ description: >-
5
+ Direct invocation by name or slash command. Matches when the user
6
+ explicitly requests inspirera.
7
+ priority: high
8
+ patterns:
9
+ - "inspirera"
10
+ - "/inspirera"
11
+ 2:
12
+ id: T2
13
+ description: >-
14
+ Applicability assessment requests. Matches when the user provides
15
+ an external URL and asks how it applies to their project or whether
16
+ they should adopt it.
17
+ priority: medium
18
+ patterns:
19
+ - "could I use this in"
20
+ - "how does this apply to my project"
21
+ - "is this relevant to"
22
+ - "what can I take from this"
23
+ - "should I adopt"
24
+ 3:
25
+ id: T3
26
+ description: >-
27
+ External resource review requests. Matches when the user wants
28
+ analysis of a library, repo, or approach for ideas and patterns.
29
+ priority: medium
30
+ patterns:
31
+ - "what do you think of this library"
32
+ - "review this repo for ideas"
33
+ - "anything worth stealing from"
34
+ - "how does this compare to what I'm doing"
@@ -0,0 +1,58 @@
1
+ VALIDATION:
2
+ 1:
3
+ id: V1
4
+ rule: read_only_target
5
+ description: >-
6
+ Inspirera MUST NOT modify code in the target project. It analyzes
7
+ and maps concepts; other capabilities (realisera, optimera)
8
+ implement changes. The only writes are to TODO.md and VISION.md,
9
+ and only with explicit user confirmation.
10
+ severity: critical
11
+ checks:
12
+ - "No code modifications in target project"
13
+ - "TODO.md and VISION.md writes require user confirmation"
14
+ 2:
15
+ id: V2
16
+ rule: source_depth
17
+ description: >-
18
+ The analysis MUST reflect deep reading of the source. Shallow
19
+ reads produce shallow analysis. If the source was not read
20
+ thoroughly (e.g., paywalled, truncated), the limitation must
21
+ be explicitly stated.
22
+ severity: critical
23
+ checks:
24
+ - "Analysis reflects actual source content"
25
+ - "Limitations are stated when source access is partial"
26
+ 3:
27
+ id: V3
28
+ rule: fit_assessment
29
+ description: >-
30
+ Every recommendation MUST consider the target project's constraints,
31
+ stack, and principles. Recommendations without fit assessment are
32
+ not acceptable. Fundamentally incompatible patterns must be called
33
+ out explicitly.
34
+ severity: critical
35
+ checks:
36
+ - "Each recommendation considers target constraints"
37
+ - "Incompatible patterns are explicitly noted"
38
+ 4:
39
+ id: V4
40
+ rule: no_fabrication
41
+ description: >-
42
+ Source content MUST be quoted from actual code and text. Fabricated
43
+ quotes or invented patterns are never acceptable.
44
+ severity: critical
45
+ checks:
46
+ - "All source quotes trace to actual content"
47
+ - "No invented patterns or concepts"
48
+ 5:
49
+ id: V5
50
+ rule: matrix_constraint
51
+ description: >-
52
+ The Applicability Matrix cells MUST be ≤15 words each. The matrix
53
+ contains conclusions only, not reasoning chains. Reasoning belongs
54
+ in the response text before the matrix.
55
+ severity: warning
56
+ checks:
57
+ - "Matrix cells ≤ 15 words"
58
+ - "Reasoning in response text, not matrix cells"