agentera 0.0.0 → 3.0.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -45
- package/bundle/.agentera-npx-bundle.json +4 -0
- package/bundle/references/adapters/cursor.md +213 -0
- package/bundle/references/adapters/opencode.md +530 -0
- package/bundle/references/adapters/package-manifest-interface-model.yaml +337 -0
- package/bundle/references/adapters/package-registry.yaml +247 -0
- package/bundle/references/adapters/package-surface-characterization.md +48 -0
- package/bundle/references/adapters/runtime-adapter-characterization.md +79 -0
- package/bundle/references/adapters/runtime-adapter-interface-model.yaml +200 -0
- package/bundle/references/adapters/runtime-adapter-registry.yaml +548 -0
- package/bundle/references/adapters/runtime-feature-parity.md +189 -0
- package/bundle/references/analysis/benchmark.md +267 -0
- package/bundle/references/analysis/startup-measurement-contract.yaml +424 -0
- package/bundle/references/artifacts/artifact-registry-interface-model.yaml +288 -0
- package/bundle/references/cli/agent-ready-state-contract.yaml +950 -0
- package/bundle/references/cli/app-lifecycle-vocabulary.yaml +233 -0
- package/bundle/references/cli/audience-namespace-cli-migration.yaml +355 -0
- package/bundle/references/cli/bundle-skill-vocabulary.yaml +278 -0
- package/bundle/references/cli/capability-instruction-contract.yaml +123 -0
- package/bundle/references/cli/capability-tool-classification.yaml +53 -0
- package/bundle/references/cli/routing-execution-vocabulary.yaml +281 -0
- package/bundle/references/cli/update-channels.yaml +120 -0
- package/bundle/references/cli/vocabulary-index.yaml +160 -0
- package/bundle/references/cli/vocabulary.md +562 -0
- package/bundle/references/meta/documentation-inventory.md +43 -0
- package/bundle/references/v1-section-mapping.md +47 -0
- package/bundle/registry.json +39 -0
- package/bundle/skills/agentera/.claude-plugin/plugin.json +27 -0
- package/bundle/skills/agentera/SKILL.md +470 -0
- package/bundle/skills/agentera/agents/dokumentera.toml +6 -0
- package/bundle/skills/agentera/agents/hej.toml +6 -0
- package/bundle/skills/agentera/agents/inspektera.toml +6 -0
- package/bundle/skills/agentera/agents/inspirera.toml +6 -0
- package/bundle/skills/agentera/agents/optimera.toml +6 -0
- package/bundle/skills/agentera/agents/orkestrera.toml +6 -0
- package/bundle/skills/agentera/agents/planera.toml +6 -0
- package/bundle/skills/agentera/agents/profilera.toml +6 -0
- package/bundle/skills/agentera/agents/realisera.toml +6 -0
- package/bundle/skills/agentera/agents/resonera.toml +6 -0
- package/bundle/skills/agentera/agents/visionera.toml +6 -0
- package/bundle/skills/agentera/agents/visualisera.toml +6 -0
- package/bundle/skills/agentera/capabilities/dokumentera/instructions.md +428 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/artifacts.yaml +73 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/triggers.yaml +35 -0
- package/bundle/skills/agentera/capabilities/dokumentera/schemas/validation.yaml +139 -0
- package/bundle/skills/agentera/capabilities/hej/instructions.md +331 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/artifacts.yaml +69 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/exit.yaml +32 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/triggers.yaml +58 -0
- package/bundle/skills/agentera/capabilities/hej/schemas/validation.yaml +55 -0
- package/bundle/skills/agentera/capabilities/inspektera/instructions.md +514 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/artifacts.yaml +76 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/exit.yaml +36 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/triggers.yaml +38 -0
- package/bundle/skills/agentera/capabilities/inspektera/schemas/validation.yaml +113 -0
- package/bundle/skills/agentera/capabilities/inspirera/instructions.md +280 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/artifacts.yaml +24 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/exit.yaml +33 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/triggers.yaml +34 -0
- package/bundle/skills/agentera/capabilities/inspirera/schemas/validation.yaml +58 -0
- package/bundle/skills/agentera/capabilities/optimera/instructions.md +437 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/artifacts.yaml +69 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/triggers.yaml +39 -0
- package/bundle/skills/agentera/capabilities/optimera/schemas/validation.yaml +91 -0
- package/bundle/skills/agentera/capabilities/orkestrera/instructions.md +433 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/artifacts.yaml +64 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/triggers.yaml +42 -0
- package/bundle/skills/agentera/capabilities/orkestrera/schemas/validation.yaml +107 -0
- package/bundle/skills/agentera/capabilities/planera/instructions.md +368 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/artifacts.yaml +62 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/exit.yaml +33 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/triggers.yaml +34 -0
- package/bundle/skills/agentera/capabilities/planera/schemas/validation.yaml +61 -0
- package/bundle/skills/agentera/capabilities/profilera/instructions.md +419 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/artifacts.yaml +18 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/triggers.yaml +45 -0
- package/bundle/skills/agentera/capabilities/profilera/schemas/validation.yaml +57 -0
- package/bundle/skills/agentera/capabilities/realisera/instructions.md +403 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/artifacts.yaml +80 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/triggers.yaml +39 -0
- package/bundle/skills/agentera/capabilities/realisera/schemas/validation.yaml +110 -0
- package/bundle/skills/agentera/capabilities/resonera/instructions.md +329 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/artifacts.yaml +47 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/triggers.yaml +46 -0
- package/bundle/skills/agentera/capabilities/resonera/schemas/validation.yaml +77 -0
- package/bundle/skills/agentera/capabilities/visionera/instructions.md +309 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/artifacts.yaml +57 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/exit.yaml +35 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/triggers.yaml +41 -0
- package/bundle/skills/agentera/capabilities/visionera/schemas/validation.yaml +74 -0
- package/bundle/skills/agentera/capabilities/visualisera/instructions.md +400 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/artifacts.yaml +44 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/exit.yaml +34 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/triggers.yaml +33 -0
- package/bundle/skills/agentera/capabilities/visualisera/schemas/validation.yaml +80 -0
- package/bundle/skills/agentera/capability_schema_contract.yaml +385 -0
- package/bundle/skills/agentera/protocol.yaml +463 -0
- package/bundle/skills/agentera/references/contract.md +1039 -0
- package/bundle/skills/agentera/schemas/artifacts/changelog.yaml +60 -0
- package/bundle/skills/agentera/schemas/artifacts/decisions.yaml +461 -0
- package/bundle/skills/agentera/schemas/artifacts/design.yaml +55 -0
- package/bundle/skills/agentera/schemas/artifacts/docs.yaml +402 -0
- package/bundle/skills/agentera/schemas/artifacts/experiments.yaml +373 -0
- package/bundle/skills/agentera/schemas/artifacts/health.yaml +484 -0
- package/bundle/skills/agentera/schemas/artifacts/objective.yaml +399 -0
- package/bundle/skills/agentera/schemas/artifacts/plan.yaml +342 -0
- package/bundle/skills/agentera/schemas/artifacts/progress.yaml +325 -0
- package/bundle/skills/agentera/schemas/artifacts/todo.yaml +110 -0
- package/bundle/skills/agentera/schemas/artifacts/vision.yaml +262 -0
- package/bundle/skills/hej/.claude-plugin/plugin.json +6 -0
- package/bundle/skills/hej/SKILL.md +69 -0
- package/bundle/skills/hej/agents/hej.toml +11 -0
- package/bundle/skills/hej/agents/openai.yaml +8 -0
- package/dist/analytics/extractCorpus.js +1791 -0
- package/dist/analytics/extractCorpus.js.map +1 -0
- package/dist/analytics/usageStats.js +487 -0
- package/dist/analytics/usageStats.js.map +1 -0
- package/dist/bin/agentera.js +4 -0
- package/dist/bin/agentera.js.map +1 -0
- package/dist/cli/appContext.js +226 -0
- package/dist/cli/appContext.js.map +1 -0
- package/dist/cli/argvalidate.js +41 -0
- package/dist/cli/argvalidate.js.map +1 -0
- package/dist/cli/capabilityContext.js +2421 -0
- package/dist/cli/capabilityContext.js.map +1 -0
- package/dist/cli/commands/backfill.js +84 -0
- package/dist/cli/commands/backfill.js.map +1 -0
- package/dist/cli/commands/capability.js +44 -0
- package/dist/cli/commands/capability.js.map +1 -0
- package/dist/cli/commands/compact.js +148 -0
- package/dist/cli/commands/compact.js.map +1 -0
- package/dist/cli/commands/doctor.js +180 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/lint.js +179 -0
- package/dist/cli/commands/lint.js.map +1 -0
- package/dist/cli/commands/prime.js +545 -0
- package/dist/cli/commands/prime.js.map +1 -0
- package/dist/cli/commands/query.js +346 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/report.js +210 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/schema.js +306 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/state.js +1012 -0
- package/dist/cli/commands/state.js.map +1 -0
- package/dist/cli/commands/upgrade.js +49 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/validate.js +519 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/verify.js +204 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/dispatch.js +962 -0
- package/dist/cli/dispatch.js.map +1 -0
- package/dist/cli/orientation.js +595 -0
- package/dist/cli/orientation.js.map +1 -0
- package/dist/cli/prime-blob.js +3 -0
- package/dist/cli/prime-blob.js.map +1 -0
- package/dist/cli/stateQuery.js +292 -0
- package/dist/cli/stateQuery.js.map +1 -0
- package/dist/cli/structured.js +18 -0
- package/dist/cli/structured.js.map +1 -0
- package/dist/core/difflib.js +274 -0
- package/dist/core/difflib.js.map +1 -0
- package/dist/core/git.js +43 -0
- package/dist/core/git.js.map +1 -0
- package/dist/core/paths.js +50 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/pyjson.js +101 -0
- package/dist/core/pyjson.js.map +1 -0
- package/dist/core/sourceRoot.js +72 -0
- package/dist/core/sourceRoot.js.map +1 -0
- package/dist/core/toml.js +11 -0
- package/dist/core/toml.js.map +1 -0
- package/dist/core/yaml.js +25 -0
- package/dist/core/yaml.js.map +1 -0
- package/dist/eval/evalSkills.js +258 -0
- package/dist/eval/evalSkills.js.map +1 -0
- package/dist/eval/semanticEval.js +148 -0
- package/dist/eval/semanticEval.js.map +1 -0
- package/dist/eval/semanticFixtures.js +227 -0
- package/dist/eval/semanticFixtures.js.map +1 -0
- package/dist/hooks/common.js +160 -0
- package/dist/hooks/common.js.map +1 -0
- package/dist/hooks/compaction.js +935 -0
- package/dist/hooks/compaction.js.map +1 -0
- package/dist/hooks/cursorPreToolUse.js +19 -0
- package/dist/hooks/cursorPreToolUse.js.map +1 -0
- package/dist/hooks/cursorSessionStart.js +71 -0
- package/dist/hooks/cursorSessionStart.js.map +1 -0
- package/dist/hooks/sessionStart.js +209 -0
- package/dist/hooks/sessionStart.js.map +1 -0
- package/dist/hooks/sessionStop.js +212 -0
- package/dist/hooks/sessionStop.js.map +1 -0
- package/dist/hooks/validateArtifact.js +933 -0
- package/dist/hooks/validateArtifact.js.map +1 -0
- package/dist/registries/artifactRegistry.js +206 -0
- package/dist/registries/artifactRegistry.js.map +1 -0
- package/dist/registries/capabilityContract.js +310 -0
- package/dist/registries/capabilityContract.js.map +1 -0
- package/dist/registries/packageRegistry.js +641 -0
- package/dist/registries/packageRegistry.js.map +1 -0
- package/dist/registries/runtimeAdapterRegistry.js +315 -0
- package/dist/registries/runtimeAdapterRegistry.js.map +1 -0
- package/dist/setup/codex.js +1052 -0
- package/dist/setup/codex.js.map +1 -0
- package/dist/setup/copilot.js +227 -0
- package/dist/setup/copilot.js.map +1 -0
- package/dist/setup/cursor.js +127 -0
- package/dist/setup/cursor.js.map +1 -0
- package/dist/setup/doctor.js +1269 -0
- package/dist/setup/doctor.js.map +1 -0
- package/dist/state/installRoot.js +279 -0
- package/dist/state/installRoot.js.map +1 -0
- package/dist/state/progressCommit.js +289 -0
- package/dist/state/progressCommit.js.map +1 -0
- package/dist/state/startupAnalysis.js +1953 -0
- package/dist/state/startupAnalysis.js.map +1 -0
- package/dist/upgrade/appModel.js +189 -0
- package/dist/upgrade/appModel.js.map +1 -0
- package/dist/upgrade/channels.js +197 -0
- package/dist/upgrade/channels.js.map +1 -0
- package/dist/upgrade/compatibility.js +197 -0
- package/dist/upgrade/compatibility.js.map +1 -0
- package/dist/upgrade/doctor.js +368 -0
- package/dist/upgrade/doctor.js.map +1 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js +412 -0
- package/dist/upgrade/migrateArtifactsV2ToV3.js.map +1 -0
- package/dist/upgrade/upgradeCommands.js +40 -0
- package/dist/upgrade/upgradeCommands.js.map +1 -0
- package/dist/upgrade/upgradeOrchestrator.js +280 -0
- package/dist/upgrade/upgradeOrchestrator.js.map +1 -0
- package/dist/validate/appHomeContract.js +150 -0
- package/dist/validate/appHomeContract.js.map +1 -0
- package/dist/validate/capability.js +412 -0
- package/dist/validate/capability.js.map +1 -0
- package/dist/validate/crossCapability.js +145 -0
- package/dist/validate/crossCapability.js.map +1 -0
- package/dist/validate/lifecycleAdapters.js +772 -0
- package/dist/validate/lifecycleAdapters.js.map +1 -0
- package/dist/validate/selfAudit.js +107 -0
- package/dist/validate/selfAudit.js.map +1 -0
- package/package.json +28 -8
- package/LICENSE +0 -201
- package/bin/agentera.mjs +0 -50
- package/lib/exec.mjs +0 -116
- 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"
|