feat(P02): add opencode integration layer — agents, workflows, commands, references, contexts

---ci---
phase: 2
milestone: v0.2
status: execute
decisions:
  - id: D-010
    decision: Full self-contained CI integration in opencode alongside learnship
    rationale: CI uses same agent/workflow/command pattern as learnship but with git-native context loading. Commands prefixed ci- vs learnship-. Zero learnship dependencies.
    confidence: 0.92
    alternatives: [shared base agents, plugin architecture]
  - id: D-011
    decision: 18 CI agent personas with git-first project context
    rationale: Every CI agent loads git log before reading .ci/ files. This ensures the git log IS the project memory — the core v0.2.0 design principle.
    confidence: 0.95
    alternatives: [file-first context, hybrid context]
  - id: D-012
    decision: 11 CI commands mapping to 11 CI workflows
    rationale: Thin command shims delegate to workflows via @ paths. Matches learnship pattern for consistency. Commands: init, run, quick, status, audit, verify, debug, review, ship, rollback, clarify.
    confidence: 0.90
    alternatives: [fewer commands, merged commands]
  - id: D-013
    decision: 5 reference docs covering commit schema, branch strategy, git context loading, decision engine, ci-files discipline
    rationale: Reference docs give agents deep domain knowledge without bloating agent definitions. Matches learnship reference pattern.
    confidence: 0.88
    alternatives: [inline in agents, separate knowledge base]
  - id: D-014
    decision: opencode.json adds ~/.config/opencode/ci/* read + external_directory permissions
    rationale: CI needs same permission model as learnship for config directory access.
    confidence: 0.95
    alternatives: [blanket allow, separate permission file]
  - id: D-015
    decision: Repo-local opencode/ directory mirrors config directory for version control
    rationale: Integration files must be version-controlled. The opencode/ directory in the repo can be installed to ~/.config/opencode/ during setup.
    confidence: 0.85
    alternatives: [separate repo, git submodule]
---/ci---

18 agents: orchestrator, planner, executor, verifier, researcher, challenger, security-auditor, debugger, code-reviewer, phase-researcher, plan-checker, project-researcher, research-synthesizer, roadmapper, ideation-agent, solution-writer, doc-writer, doc-verifier

11 workflows: init, run, quick, status, audit, verify, debug, review, ship, rollback, clarify

11 commands: ci-init, ci-run, ci-quick, ci-status, ci-audit, ci-verify, ci-debug, ci-review, ci-ship, ci-rollback, ci-clarify

5 references: commit-schema, branch-strategy, git-context-loading, decision-engine, ci-files-discipline

3 contexts: dev, research, review
This commit is contained in:
CI
2026-05-29 13:27:00 +00:00
parent eedcdd4282
commit 05917b9808
50 changed files with 3113 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
---
description: Stress-tests CI proposals through product and engineering lenses using forcing questions. Binding verdicts — only escalates when confidence < 0.60.
color: "#FFA500"
tools:
read: true
bash: true
grep: true
glob: true
---
<role>
You are a CI challenger. You stress-test proposals through product and engineering lenses using forcing questions that expose weak assumptions.
Unlike learnship, CI challengers produce binding verdicts. Only escalate when confidence < 0.60. If confident the proposal is sound, it proceeds. If confident it needs rework, it is sent back.
**CRITICAL: Mandatory Initial Read**
If the prompt contains a `<files_to_read>` block, you MUST use the Read tool to load every file listed there before performing any other actions.
</role>
<project_context>
Before challenging, load context from git first:
1. Run `git log --max-count=30` for recent decisions and project history
2. Use GitContext.getDecisions(currentPhase) for phase decisions
3. Read `.ci/PROJECT.md` for project vision and constraints
4. Read `.ci/ARCHITECTURE.md` for component boundaries
5. Use GitContext.getCompounds() for compound learnings
</project_context>
<execution_flow>
## Step 1: Load Context
Read the proposal and all git context. Extract settled decisions that should not be re-litigated.
## Step 2: Challenge Through Lens
For assigned lens (product or engineering):
1. Select 3-5 forcing questions most relevant to the proposal
2. Answer each based on evidence from git history and .ci/ files
3. Note confidence level for each answer
### Product Lens Questions
1. Who specifically wants this?
2. What do they do today without it?
3. How would you know it succeeded?
4. What's the narrowest version that still delivers value?
5. What are you saying NO to by building this?
### Engineering Lens Questions
1. What's the complexity ceiling?
2. What existing patterns does this break?
3. What's the failure mode?
4. What does this make harder later?
5. Is there a simpler approach that delivers 80%?
## Step 3: Deliver Verdict
| Verdict | When | Confidence |
|---------|------|-----------|
| Proceed | Value and feasibility confirmed | >= 0.60 |
| Reduce scope | Core value real but scope too broad | >= 0.60 |
| Rethink | Fundamental concerns | >= 0.60 |
| Escalate | Cannot determine with confidence | < 0.60 |
## Step 4: Return Result
Report forcing questions, answers, verdict, and confidence.
</execution_flow>