project-iris 0.0.7 → 0.0.11
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 +294 -264
- package/dist/bridge/agent-runner.js +190 -0
- package/dist/bridge/connector-factory.js +4 -0
- package/dist/bridge/connectors/in-process-connector.js +29 -0
- package/dist/bridge/filesystem-connector.js +5 -0
- package/dist/cli.js +10 -2
- package/dist/commands/ask.js +150 -23
- package/dist/commands/bridge.js +8 -0
- package/dist/commands/flow.js +301 -0
- package/dist/commands/framework.js +273 -0
- package/dist/commands/generate.js +59 -0
- package/dist/commands/install.js +72 -29
- package/dist/commands/pack.js +7 -1
- package/dist/commands/run.js +195 -13
- package/dist/commands/status.js +9 -0
- package/dist/commands/uninstall.js +3 -1
- package/dist/commands/use.js +20 -0
- package/dist/commands/validate.js +80 -65
- package/dist/framework/framework-loader.js +97 -0
- package/dist/framework/framework-paths.js +48 -0
- package/dist/framework/framework-types.js +15 -0
- package/dist/iris/artifacts/config.js +68 -0
- package/dist/iris/artifacts/generator.js +88 -0
- package/dist/iris/artifacts/types.js +1 -0
- package/dist/iris/bundle.js +44 -0
- package/dist/iris/doctrine/collector.js +124 -0
- package/dist/iris/fixer.js +28 -22
- package/dist/iris/flows/manifest.js +124 -0
- package/dist/iris/framework-context.js +49 -0
- package/dist/iris/framework-manager.js +215 -0
- package/dist/iris/fs/atomic.js +22 -0
- package/dist/iris/importers/index.js +9 -0
- package/dist/iris/importers/types.js +8 -0
- package/dist/iris/importers/writer.js +139 -0
- package/dist/iris/installer.js +105 -40
- package/dist/iris/interactive/env.js +21 -0
- package/dist/iris/interactive/intent-interview.js +345 -0
- package/dist/iris/interactive/intent-schema.js +28 -0
- package/dist/iris/interactive/interview-io.js +22 -0
- package/dist/iris/interview/config.js +71 -0
- package/dist/iris/interview/types.js +16 -0
- package/dist/iris/interview/utils.js +38 -0
- package/dist/iris/packer.js +69 -47
- package/dist/iris/parsers/unit-parser.js +43 -0
- package/dist/iris/paths.js +18 -0
- package/dist/iris/policy.js +122 -17
- package/dist/iris/proc.js +56 -0
- package/dist/iris/resolver.js +3 -0
- package/dist/iris/routes.js +180 -11
- package/dist/iris/run-state.js +3 -0
- package/dist/iris/state.js +37 -9
- package/dist/iris/templates.js +70 -0
- package/dist/iris/tmp.js +24 -0
- package/dist/iris/uninstaller.js +24 -9
- package/dist/iris/utils/interpolate.js +42 -0
- package/dist/iris/validator.js +72 -10
- package/dist/iris/workflow/config.js +51 -0
- package/dist/iris/workflow/engine.js +129 -0
- package/dist/iris/workflow/steps.js +448 -0
- package/dist/iris/workflow/types.js +1 -0
- package/dist/utils/logo.js +17 -0
- package/dist/workflows/intent-inception.js +87 -65
- package/package.json +8 -6
- package/src/iris_bundle/.iris/aidlc/README.md +0 -16
- package/src/iris_bundle/.iris/aidlc/agents/iris-construction-agent.md +0 -35
- package/src/iris_bundle/.iris/aidlc/agents/iris-inception-agent.md +0 -30
- package/src/iris_bundle/.iris/aidlc/agents/iris-master-agent.md +0 -35
- package/src/iris_bundle/.iris/aidlc/agents/iris-operations-agent.md +0 -29
- package/src/iris_bundle/.iris/aidlc/commands/iris-construction-agent.md +0 -18
- package/src/iris_bundle/.iris/aidlc/commands/iris-inception-agent.md +0 -18
- package/src/iris_bundle/.iris/aidlc/commands/iris-master-agent.md +0 -18
- package/src/iris_bundle/.iris/aidlc/commands/iris-operations-agent.md +0 -18
- package/src/iris_bundle/.iris/aidlc/context/context-map.md +0 -25
- package/src/iris_bundle/.iris/aidlc/context/exclusion-rules.md +0 -13
- package/src/iris_bundle/.iris/aidlc/context/load-order.md +0 -25
- package/src/iris_bundle/.iris/aidlc/memory/intent-rules.md +0 -9
- package/src/iris_bundle/.iris/aidlc/memory/log-rules.md +0 -5
- package/src/iris_bundle/.iris/aidlc/memory/memory-bank.yaml +0 -39
- package/src/iris_bundle/.iris/aidlc/memory/unit-rules.md +0 -9
- package/src/iris_bundle/.iris/aidlc/quick-start.md +0 -24
- package/src/iris_bundle/.iris/aidlc/skills/execution/implementation.md +0 -14
- package/src/iris_bundle/.iris/aidlc/skills/execution/refactoring.md +0 -13
- package/src/iris_bundle/.iris/aidlc/skills/execution/scaffold-generation.md +0 -15
- package/src/iris_bundle/.iris/aidlc/skills/governance/escalation.md +0 -13
- package/src/iris_bundle/.iris/aidlc/skills/governance/quality-gates.md +0 -14
- package/src/iris_bundle/.iris/aidlc/skills/governance/stop-conditions.md +0 -11
- package/src/iris_bundle/.iris/aidlc/skills/reasoning/decomposition.md +0 -23
- package/src/iris_bundle/.iris/aidlc/skills/reasoning/risk-analysis.md +0 -14
- package/src/iris_bundle/.iris/aidlc/skills/reasoning/verification.md +0 -21
- package/src/iris_bundle/.iris/aidlc/standards/artifacts-registry.md +0 -38
- package/src/iris_bundle/.iris/aidlc/standards/decision-logging.md +0 -16
- package/src/iris_bundle/.iris/aidlc/standards/doctrine-structure.md +0 -31
- package/src/iris_bundle/.iris/aidlc/standards/documentation-rules.md +0 -15
- package/src/iris_bundle/.iris/aidlc/standards/file-structure.md +0 -21
- package/src/iris_bundle/.iris/aidlc/standards/naming-conventions.md +0 -18
- package/src/iris_bundle/.iris/aidlc/standards/phases-and-gates.md +0 -25
- package/src/iris_bundle/.iris/aidlc/standards/routes-and-routing.md +0 -35
- package/src/iris_bundle/.iris/aidlc/standards/tool-wrappers.md +0 -32
- package/src/iris_bundle/.iris/aidlc/templates/bolt.md +0 -23
- package/src/iris_bundle/.iris/aidlc/templates/doctrine-doc-template.md +0 -33
- package/src/iris_bundle/.iris/aidlc/templates/intent.md +0 -23
- package/src/iris_bundle/.iris/aidlc/templates/log.md +0 -24
- package/src/iris_bundle/.iris/aidlc/templates/review.md +0 -21
- package/src/iris_bundle/.iris/aidlc/templates/unit.md +0 -31
- package/src/iris_bundle/.iris/aidlc/validation/failure-modes.md +0 -16
- package/src/iris_bundle/.iris/aidlc/validation/phase-preconditions.md +0 -21
- package/src/iris_bundle/.iris/aidlc/validation/quality-checklist.md +0 -20
- package/src/iris_bundle/.iris/policy.yaml +0 -27
- package/src/iris_bundle/.iris/routes.yaml +0 -98
- package/src/iris_bundle/.iris/state.yaml +0 -7
- package/src/iris_bundle/.iris/tools/claude/.claude/claude.md +0 -9
- package/src/iris_bundle/.iris/tools/claude/.claude/commands/compare-specs.md +0 -203
- package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-construction-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-inception-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-master-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/claude/.claude/commands/iris-operations-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/codex/AGENTS.md +0 -15
- package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-construction-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-inception-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-master-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/cursor/.cursor/commands/iris-operations-agent.md +0 -25
- package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-construction-agent.toml +0 -29
- package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-inception-agent.toml +0 -29
- package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-master-agent.toml +0 -29
- package/src/iris_bundle/.iris/tools/gemini/.gemini/commands/iris-operations-agent.toml +0 -29
|
@@ -14,75 +14,97 @@ import { appendEvent, saveRun } from "../iris/run-state.js";
|
|
|
14
14
|
export async function executeIntentInception(runState, connector, options) {
|
|
15
15
|
console.log(kleur.bold("Intent Inception Stage"));
|
|
16
16
|
console.log(kleur.dim("Clarifying requirements and creating intent artifacts\n"));
|
|
17
|
-
// Step 1: Generate clarifying questions
|
|
18
|
-
console.log(kleur.cyan("→ Generating clarifying questions..."));
|
|
19
|
-
const questionsTaskId = randomUUID();
|
|
20
|
-
const questionsPacket = {
|
|
21
|
-
taskId: questionsTaskId,
|
|
22
|
-
intent: runState.intent,
|
|
23
|
-
stage: WorkflowStage.INTENT_INCEPTION,
|
|
24
|
-
agent: "iris-inception-agent",
|
|
25
|
-
instructions: `Based on the intent "${runState.intent}", generate 3-8 clarifying questions to better understand:
|
|
26
|
-
- The problem being solved
|
|
27
|
-
- Success criteria
|
|
28
|
-
- Scope and constraints
|
|
29
|
-
- Technical requirements
|
|
30
|
-
- User expectations
|
|
31
|
-
|
|
32
|
-
Return the questions as a JSON array of strings in the result message.`,
|
|
33
|
-
inputs: [],
|
|
34
|
-
expectedOutputs: [],
|
|
35
|
-
metadata: { step: "clarifying_questions" }
|
|
36
|
-
};
|
|
37
|
-
appendEvent(runState.runId, {
|
|
38
|
-
stage: WorkflowStage.INTENT_INCEPTION,
|
|
39
|
-
action: "Requesting clarifying questions",
|
|
40
|
-
taskId: questionsTaskId
|
|
41
|
-
});
|
|
42
|
-
if (options.noBridge) {
|
|
43
|
-
console.log(kleur.yellow(" Bridge disabled. Task packet written to:"));
|
|
44
|
-
console.log(kleur.dim(` .iris/bridge/inbox/${questionsTaskId}.json`));
|
|
45
|
-
console.log(kleur.dim(" Manually create result in .iris/bridge/outbox/\n"));
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
17
|
try {
|
|
49
|
-
|
|
50
|
-
console.log(kleur.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
18
|
+
// Step 1: Clarification Loop (Ping-Pong)
|
|
19
|
+
console.log(kleur.cyan("→ Starting clarification loop..."));
|
|
20
|
+
const history = [];
|
|
21
|
+
let isDone = false;
|
|
22
|
+
let turnCount = 0;
|
|
23
|
+
const MAX_TURNS = 10;
|
|
24
|
+
while (!isDone && turnCount < MAX_TURNS) {
|
|
25
|
+
turnCount++;
|
|
26
|
+
const turnId = randomUUID();
|
|
27
|
+
// Prepare context for the agent
|
|
28
|
+
const contextStr = history.map(h => `Q: ${h.question}\nA: ${h.answer}`).join("\n\n");
|
|
29
|
+
const instructions = `You are an expert product manager refining a user's intent.
|
|
30
|
+
Intent: "${runState.intent}"
|
|
31
|
+
|
|
32
|
+
Current Understanding (Q&A History):
|
|
33
|
+
${contextStr || "(None yet)"}
|
|
34
|
+
|
|
35
|
+
Task:
|
|
36
|
+
Analyze the intent and history.
|
|
37
|
+
You MUST clarify the following aspects before finishing:
|
|
38
|
+
1. Target User & Use Case
|
|
39
|
+
2. Technical Constraints (Language, Frameworks, Database)
|
|
40
|
+
3. Success Criteria (Specific requirements)
|
|
41
|
+
4. Non-Goals (What to avoid)
|
|
42
|
+
|
|
43
|
+
Instructions:
|
|
44
|
+
1. If you have clear answers for ALL the above aspects, return exactly the string "DONE".
|
|
45
|
+
2. If any aspect is missing or vague, ask the SINGLE most important clarifying question to ask the user next.
|
|
46
|
+
|
|
47
|
+
Return ONLY the question string or "DONE". Do not include JSON or explanation.`;
|
|
48
|
+
const packet = {
|
|
49
|
+
taskId: turnId,
|
|
50
|
+
intent: runState.intent,
|
|
51
|
+
stage: WorkflowStage.INTENT_INCEPTION,
|
|
52
|
+
agent: "iris-inception-agent",
|
|
53
|
+
instructions,
|
|
54
|
+
inputs: [],
|
|
55
|
+
expectedOutputs: [],
|
|
56
|
+
metadata: { step: "clarify_turn", turn: turnCount }
|
|
57
|
+
};
|
|
58
|
+
if (options.noBridge) {
|
|
59
|
+
console.log(kleur.yellow(` [Turn ${turnCount}] Bridge disabled. Write result to .iris/bridge/inbox/${turnId}.json`));
|
|
60
|
+
return; // Cannot proceed in loop without bridge in this mock implementation
|
|
61
|
+
}
|
|
62
|
+
// Inner try/catch for turn resilience
|
|
63
|
+
try {
|
|
64
|
+
await connector.sendTask(packet);
|
|
65
|
+
// Show loading spinner or status?
|
|
66
|
+
const turnResult = await connector.waitResult(turnId, { timeoutMs: 120000 }); // 2 mins per turn
|
|
67
|
+
if (turnResult.status === "error") {
|
|
68
|
+
throw new Error(turnResult.error || "Agent failed to respond");
|
|
69
|
+
}
|
|
70
|
+
const agentResponse = turnResult.message.trim();
|
|
71
|
+
if (agentResponse === "DONE" || agentResponse.includes('"DONE"')) {
|
|
72
|
+
isDone = true;
|
|
73
|
+
console.log(kleur.green("\n✓ Intent clarified. Proceeding to design...\n"));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// It's a question
|
|
77
|
+
const question = agentResponse.replace(/^"|"$/g, ""); // strip quotes if present
|
|
78
|
+
console.log(kleur.bold(`\n${question}`));
|
|
79
|
+
const { answer } = await inquirer.prompt([
|
|
80
|
+
{
|
|
81
|
+
type: "input",
|
|
82
|
+
name: "answer",
|
|
83
|
+
message: "Answer:",
|
|
84
|
+
validate: (val) => val.trim().length > 0 || "Please provide an answer"
|
|
85
|
+
}
|
|
86
|
+
]);
|
|
87
|
+
history.push({ question, answer });
|
|
88
|
+
// Append event for tracking
|
|
89
|
+
appendEvent(runState.runId, {
|
|
90
|
+
stage: WorkflowStage.INTENT_INCEPTION,
|
|
91
|
+
action: "Q&A Turn",
|
|
92
|
+
message: `Q: ${question}\nA: ${answer}`
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
console.error(kleur.red(`Error in clarification loop: ${e.message}`));
|
|
98
|
+
break; // Exit loop on error to save partial progress
|
|
99
|
+
}
|
|
62
100
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
questions = questionsResult.message.split("\n").filter(q => q.trim());
|
|
101
|
+
if (history.length > 0) {
|
|
102
|
+
console.log(kleur.dim(`Captured ${history.length} clarification points.`));
|
|
66
103
|
}
|
|
67
|
-
|
|
68
|
-
// Step 2: Prompt user for answers
|
|
69
|
-
console.log(kleur.bold("Clarifying Questions:"));
|
|
104
|
+
// Prepare answers object for artifact generation (format match)
|
|
70
105
|
const answers = {};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
type: "input",
|
|
75
|
-
name: "answer",
|
|
76
|
-
message: `${i + 1}. ${questions[i]}`
|
|
77
|
-
}
|
|
78
|
-
]);
|
|
79
|
-
answers[questions[i]] = answer;
|
|
80
|
-
}
|
|
81
|
-
console.log("");
|
|
82
|
-
appendEvent(runState.runId, {
|
|
83
|
-
stage: WorkflowStage.INTENT_INCEPTION,
|
|
84
|
-
action: "User answered clarifying questions",
|
|
85
|
-
message: `${questions.length} questions answered`
|
|
106
|
+
history.forEach((h, i) => {
|
|
107
|
+
answers[`${i + 1}. ${h.question}`] = h.answer;
|
|
86
108
|
});
|
|
87
109
|
// Step 3: Generate intent artifacts
|
|
88
110
|
console.log(kleur.cyan("→ Generating intent artifacts..."));
|
package/package.json
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "project-iris",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"iris": "dist/cli.js",
|
|
7
7
|
"project-iris": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist/**"
|
|
11
|
-
"src/iris_bundle/**"
|
|
10
|
+
"dist/**"
|
|
12
11
|
],
|
|
13
12
|
"scripts": {
|
|
14
13
|
"build": "tsc -p tsconfig.json",
|
|
@@ -21,8 +20,10 @@
|
|
|
21
20
|
"link:iris": "npm run build && chmod +x dist/cli.js && npm link && echo '\n✓ iris linked globally' && echo 'Run: iris doctor' && echo 'If iris is not found, add global bin to PATH:' && echo ' export PATH=\"$(npm prefix -g)/bin:$PATH\"'",
|
|
22
21
|
"unlink:iris": "npm unlink -g && echo '✓ iris unlinked'",
|
|
23
22
|
"doctor": "npm run iris -- doctor",
|
|
24
|
-
"prepublishOnly": "npm run build
|
|
25
|
-
"test
|
|
23
|
+
"prepublishOnly": "npm run build",
|
|
24
|
+
"test": "vitest run",
|
|
25
|
+
"test:integration": "vitest run test/integration",
|
|
26
|
+
"test:smoke": "npm run build && vitest run test/smoke --sequence.concurrent false"
|
|
26
27
|
},
|
|
27
28
|
"dependencies": {
|
|
28
29
|
"@types/js-yaml": "^4.0.9",
|
|
@@ -37,6 +38,7 @@
|
|
|
37
38
|
"@types/inquirer": "^9.0.9",
|
|
38
39
|
"@types/node": "^22.10.2",
|
|
39
40
|
"ts-node": "^10.9.2",
|
|
40
|
-
"typescript": "^5.6.3"
|
|
41
|
+
"typescript": "^5.6.3",
|
|
42
|
+
"vitest": "^4.0.16"
|
|
41
43
|
}
|
|
42
44
|
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# IRIS AI-DLC Doctrine (Full SDLC) — Core Pack (#1–#4)
|
|
2
|
-
|
|
3
|
-
This folder is the **authoritative doctrine** for IRIS: a strict, file-based SDLC operating system for AI-assisted development.
|
|
4
|
-
|
|
5
|
-
## What is implemented in this pack
|
|
6
|
-
1. **Frozen doctrine layout**
|
|
7
|
-
2. **Strict doc schema applied to core docs**
|
|
8
|
-
3. **Canonical SDLC artifacts + templates**
|
|
9
|
-
4. **Phase transitions (preconditions + exit criteria)**
|
|
10
|
-
|
|
11
|
-
## Non‑negotiables
|
|
12
|
-
- Doctrine governs; tools execute.
|
|
13
|
-
- If it isn't in files, it is unknown.
|
|
14
|
-
- Missing prerequisites are a hard stop.
|
|
15
|
-
|
|
16
|
-
Start with: `quick-start.md` then `standards/phases-and-gates.md`.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# IRIS Construction Agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Implement approved units/bolts with verifiable evidence.
|
|
5
|
-
|
|
6
|
-
## Inputs
|
|
7
|
-
- Approved unit(s)
|
|
8
|
-
- Ready bolts (optional but recommended)
|
|
9
|
-
|
|
10
|
-
## Outputs
|
|
11
|
-
- Code changes
|
|
12
|
-
- Verification evidence (review/log)
|
|
13
|
-
- Construction completion log
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Hard Rules (Global)
|
|
17
|
-
- MUST follow `standards/phases-and-gates.md`.
|
|
18
|
-
- MUST treat missing prerequisites as a hard stop (`validation/phase-preconditions.md`).
|
|
19
|
-
- MUST log non-trivial decisions (`standards/decision-logging.md`).
|
|
20
|
-
- MUST produce file-addressable outputs (exact paths).
|
|
21
|
-
- MUST NOT invent project state.
|
|
22
|
-
|
|
23
|
-
## Default Output Format
|
|
24
|
-
- Plan (short)
|
|
25
|
-
- File path list (create/modify)
|
|
26
|
-
- Gate mapping (which checklist items are satisfied)
|
|
27
|
-
- Stop conditions (if blocked)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## Procedure
|
|
31
|
-
1. Load unit + bolt(s).
|
|
32
|
-
2. Implement smallest change set.
|
|
33
|
-
3. Verify (`skills/reasoning/verification.md`).
|
|
34
|
-
4. Record evidence.
|
|
35
|
-
5. If scope expands, STOP and request Inception update.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# IRIS Inception Agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Create and approve intent + units with testable acceptance criteria.
|
|
5
|
-
|
|
6
|
-
## Outputs
|
|
7
|
-
- Approved intent + approved units
|
|
8
|
-
- Inception kickoff log
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Hard Rules (Global)
|
|
12
|
-
- MUST follow `standards/phases-and-gates.md`.
|
|
13
|
-
- MUST treat missing prerequisites as a hard stop (`validation/phase-preconditions.md`).
|
|
14
|
-
- MUST log non-trivial decisions (`standards/decision-logging.md`).
|
|
15
|
-
- MUST produce file-addressable outputs (exact paths).
|
|
16
|
-
- MUST NOT invent project state.
|
|
17
|
-
|
|
18
|
-
## Default Output Format
|
|
19
|
-
- Plan (short)
|
|
20
|
-
- File path list (create/modify)
|
|
21
|
-
- Gate mapping (which checklist items are satisfied)
|
|
22
|
-
- Stop conditions (if blocked)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Procedure
|
|
26
|
-
1. Draft intent (`templates/intent.md`) and refine until measurable.
|
|
27
|
-
2. Decompose into units (`skills/reasoning/decomposition.md`).
|
|
28
|
-
3. Add risks/rollback (`skills/reasoning/risk-analysis.md`).
|
|
29
|
-
4. Approve only when gates pass; otherwise keep Draft.
|
|
30
|
-
5. Log key decisions.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# IRIS Master Agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Route work, enforce gates, and resolve conflicts across phases.
|
|
5
|
-
|
|
6
|
-
## Inputs
|
|
7
|
-
- Doctrine: `.iris/aidlc/**`
|
|
8
|
-
- Project memory: `memory-bank/**`
|
|
9
|
-
|
|
10
|
-
## Outputs
|
|
11
|
-
- Routing decisions
|
|
12
|
-
- Gate decisions + reviews
|
|
13
|
-
- Decision logs for architecture-level choices
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Hard Rules (Global)
|
|
17
|
-
- MUST follow `standards/phases-and-gates.md`.
|
|
18
|
-
- MUST treat missing prerequisites as a hard stop (`validation/phase-preconditions.md`).
|
|
19
|
-
- MUST log non-trivial decisions (`standards/decision-logging.md`).
|
|
20
|
-
- MUST produce file-addressable outputs (exact paths).
|
|
21
|
-
- MUST NOT invent project state.
|
|
22
|
-
|
|
23
|
-
## Default Output Format
|
|
24
|
-
- Plan (short)
|
|
25
|
-
- File path list (create/modify)
|
|
26
|
-
- Gate mapping (which checklist items are satisfied)
|
|
27
|
-
- Stop conditions (if blocked)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## Procedure
|
|
31
|
-
1. Identify current phase + requested action.
|
|
32
|
-
2. Load required artifacts for that phase.
|
|
33
|
-
3. If prerequisites missing, STOP and request exact file(s).
|
|
34
|
-
4. Route to the correct phase agent.
|
|
35
|
-
5. Enforce gate completion before any transition.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# IRIS Operations Agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Operate and stabilize: handover, monitoring, incidents, maintenance.
|
|
5
|
-
|
|
6
|
-
## Outputs
|
|
7
|
-
- Ops handover log
|
|
8
|
-
- Incident logs and postmortems (when needed)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Hard Rules (Global)
|
|
12
|
-
- MUST follow `standards/phases-and-gates.md`.
|
|
13
|
-
- MUST treat missing prerequisites as a hard stop (`validation/phase-preconditions.md`).
|
|
14
|
-
- MUST log non-trivial decisions (`standards/decision-logging.md`).
|
|
15
|
-
- MUST produce file-addressable outputs (exact paths).
|
|
16
|
-
- MUST NOT invent project state.
|
|
17
|
-
|
|
18
|
-
## Default Output Format
|
|
19
|
-
- Plan (short)
|
|
20
|
-
- File path list (create/modify)
|
|
21
|
-
- Gate mapping (which checklist items are satisfied)
|
|
22
|
-
- Stop conditions (if blocked)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
## Procedure
|
|
26
|
-
1. Confirm Ops entry prerequisites.
|
|
27
|
-
2. Maintain runbooks/logs.
|
|
28
|
-
3. For incidents: log → triage → resolve → postmortem (if major).
|
|
29
|
-
4. Feed learnings into standards or new intents.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# /iris-construction-agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Run the Construction Agent: implement approved work with evidence.
|
|
5
|
-
|
|
6
|
-
## Loads
|
|
7
|
-
- `.iris/aidlc/standards/**`
|
|
8
|
-
- `.iris/aidlc/validation/**`
|
|
9
|
-
- `.iris/aidlc/memory/**`
|
|
10
|
-
- `.iris/aidlc/agents/iris-construction-agent.md`
|
|
11
|
-
- `memory-bank/**`
|
|
12
|
-
|
|
13
|
-
## Required inputs
|
|
14
|
-
See: `.iris/aidlc/validation/phase-preconditions.md`
|
|
15
|
-
|
|
16
|
-
## Output expectations
|
|
17
|
-
- File-addressable deliverables
|
|
18
|
-
- Evidence and logs where required
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# /iris-inception-agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Run the Inception Agent: produce approved intent and units.
|
|
5
|
-
|
|
6
|
-
## Loads
|
|
7
|
-
- `.iris/aidlc/standards/**`
|
|
8
|
-
- `.iris/aidlc/validation/**`
|
|
9
|
-
- `.iris/aidlc/memory/**`
|
|
10
|
-
- `.iris/aidlc/agents/iris-inception-agent.md`
|
|
11
|
-
- `memory-bank/**`
|
|
12
|
-
|
|
13
|
-
## Required inputs
|
|
14
|
-
See: `.iris/aidlc/validation/phase-preconditions.md`
|
|
15
|
-
|
|
16
|
-
## Output expectations
|
|
17
|
-
- File-addressable deliverables
|
|
18
|
-
- Evidence and logs where required
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# /iris-master-agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Run the Master Agent: route work and enforce SDLC gates.
|
|
5
|
-
|
|
6
|
-
## Loads
|
|
7
|
-
- `.iris/aidlc/standards/**`
|
|
8
|
-
- `.iris/aidlc/validation/**`
|
|
9
|
-
- `.iris/aidlc/memory/**`
|
|
10
|
-
- `.iris/aidlc/agents/iris-master-agent.md`
|
|
11
|
-
- `memory-bank/**`
|
|
12
|
-
|
|
13
|
-
## Required inputs
|
|
14
|
-
See: `.iris/aidlc/validation/phase-preconditions.md`
|
|
15
|
-
|
|
16
|
-
## Output expectations
|
|
17
|
-
- File-addressable deliverables
|
|
18
|
-
- Evidence and logs where required
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# /iris-operations-agent
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Run the Operations Agent: stabilize and maintain.
|
|
5
|
-
|
|
6
|
-
## Loads
|
|
7
|
-
- `.iris/aidlc/standards/**`
|
|
8
|
-
- `.iris/aidlc/validation/**`
|
|
9
|
-
- `.iris/aidlc/memory/**`
|
|
10
|
-
- `.iris/aidlc/agents/iris-operations-agent.md`
|
|
11
|
-
- `memory-bank/**`
|
|
12
|
-
|
|
13
|
-
## Required inputs
|
|
14
|
-
See: `.iris/aidlc/validation/phase-preconditions.md`
|
|
15
|
-
|
|
16
|
-
## Output expectations
|
|
17
|
-
- File-addressable deliverables
|
|
18
|
-
- Evidence and logs where required
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Context Map
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Define what IRIS loads as context per phase.
|
|
5
|
-
|
|
6
|
-
## Always load
|
|
7
|
-
- `.iris/aidlc/standards/**`
|
|
8
|
-
- `.iris/aidlc/memory/**`
|
|
9
|
-
- `.iris/aidlc/validation/**`
|
|
10
|
-
|
|
11
|
-
## Phase-specific
|
|
12
|
-
### Inception
|
|
13
|
-
- templates: `intent.md`, `unit.md`
|
|
14
|
-
- standards: `phases-and-gates.md`
|
|
15
|
-
|
|
16
|
-
### Construction
|
|
17
|
-
- approved unit(s) + related bolts
|
|
18
|
-
- templates: `bolt.md`, `review.md`
|
|
19
|
-
|
|
20
|
-
### Operations
|
|
21
|
-
- handover + incident/process logs
|
|
22
|
-
- template: `log.md`
|
|
23
|
-
|
|
24
|
-
## Hard Rules
|
|
25
|
-
- Context MUST be minimal but sufficient.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Exclusion Rules
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Prevent context bloat and leakage.
|
|
5
|
-
|
|
6
|
-
## Hard Rules
|
|
7
|
-
- MUST NOT load:
|
|
8
|
-
- `node_modules/`, build artifacts, binaries
|
|
9
|
-
- secrets (`.env`, keys, credentials)
|
|
10
|
-
- large generated files unless required for verification
|
|
11
|
-
|
|
12
|
-
## Recovery
|
|
13
|
-
If context is too large, reduce to: intent + unit + relevant code + checklist.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Context Load Order (Canonical)
|
|
2
|
-
|
|
3
|
-
Tools and runners MUST load context in this order:
|
|
4
|
-
|
|
5
|
-
1. IRIS phase doctrine
|
|
6
|
-
- `.iris/aidlc/standards/phases-and-gates.md`
|
|
7
|
-
- `.iris/aidlc/validation/phase-preconditions.md`
|
|
8
|
-
|
|
9
|
-
2. IRIS artifact doctrine
|
|
10
|
-
- `.iris/aidlc/standards/artifacts-registry.md`
|
|
11
|
-
- `.iris/aidlc/memory/memory-bank.yaml`
|
|
12
|
-
- `.iris/aidlc/memory/*-rules.md`
|
|
13
|
-
|
|
14
|
-
3. The requested entrypoint
|
|
15
|
-
- `.iris/aidlc/commands/<command>.md`
|
|
16
|
-
|
|
17
|
-
4. Repo-local project signals (if present)
|
|
18
|
-
- `specs.md`, `README.md`, `package.json`, `tsconfig.json`, relevant `src/**`
|
|
19
|
-
|
|
20
|
-
5. Phase-specific memory-bank artifacts (if present)
|
|
21
|
-
- Inception: `memory-bank/intents/**`
|
|
22
|
-
- Construction: `memory-bank/units/**`, `memory-bank/bolts/**`
|
|
23
|
-
- Operations: `memory-bank/logs/**`, `memory-bank/standards/**`
|
|
24
|
-
|
|
25
|
-
If required artifacts are missing, IRIS MUST stop and request creation using templates.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Intent Rules
|
|
2
|
-
|
|
3
|
-
## Hard Rules
|
|
4
|
-
- Every repo MUST have at least one active intent.
|
|
5
|
-
- Intent MUST include: Problem, Goals, Non-goals, Constraints, Definition of Done.
|
|
6
|
-
- Any intent change MUST be logged.
|
|
7
|
-
|
|
8
|
-
## Quality Gate
|
|
9
|
-
If goals are not measurable, the intent is not ready.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
name: iris-memory-bank
|
|
2
|
-
version: '1.0'
|
|
3
|
-
root: memory-bank
|
|
4
|
-
folders:
|
|
5
|
-
intents:
|
|
6
|
-
required: true
|
|
7
|
-
description: High-level problems and DoD.
|
|
8
|
-
units:
|
|
9
|
-
required: true
|
|
10
|
-
description: Work units with acceptance + approvals.
|
|
11
|
-
bolts:
|
|
12
|
-
required: true
|
|
13
|
-
description: Implementation briefs linked to units.
|
|
14
|
-
standards:
|
|
15
|
-
required: true
|
|
16
|
-
description: Project-local standards (cannot contradict doctrine).
|
|
17
|
-
logs:
|
|
18
|
-
required: true
|
|
19
|
-
description: Decisions, reviews, incidents (append-only).
|
|
20
|
-
naming:
|
|
21
|
-
style: kebab-case
|
|
22
|
-
log_prefix: YYYY-MM-DD__
|
|
23
|
-
status_values:
|
|
24
|
-
- Draft
|
|
25
|
-
- Approved
|
|
26
|
-
- In Progress
|
|
27
|
-
- Done
|
|
28
|
-
- Archived
|
|
29
|
-
minimum_required_by_phase:
|
|
30
|
-
Inception:
|
|
31
|
-
- intents/<intent>.md (Approved)
|
|
32
|
-
- units/<unit>/unit.md (Approved)
|
|
33
|
-
- logs/<date>__inception-kickoff.md
|
|
34
|
-
Construction:
|
|
35
|
-
- units/<unit>/unit.md (Approved)
|
|
36
|
-
- bolts/<unit>/<bolt>/bolt.md (Ready)
|
|
37
|
-
- logs/<date>__construction-start.md
|
|
38
|
-
Operations:
|
|
39
|
-
- logs/<date>__ops-handover.md
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Unit Rules
|
|
2
|
-
|
|
3
|
-
## Hard Rules
|
|
4
|
-
- Units MUST be testable and scoped.
|
|
5
|
-
- Units MUST include: Scope, Acceptance, Test Plan, Risks, Rollback.
|
|
6
|
-
- Construction MUST reference an approved unit.
|
|
7
|
-
|
|
8
|
-
## Approval
|
|
9
|
-
A unit is approved when `Status: Approved` is set and an approval log exists.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Quick Start (IRIS Doctrine)
|
|
2
|
-
|
|
3
|
-
## 1) Create the canonical memory bank (repo root)
|
|
4
|
-
```
|
|
5
|
-
memory-bank/
|
|
6
|
-
intents/
|
|
7
|
-
units/
|
|
8
|
-
bolts/
|
|
9
|
-
standards/
|
|
10
|
-
logs/
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## 2) Work in phases
|
|
14
|
-
- **Inception** → define & approve intent + units
|
|
15
|
-
- **Construction** → implement approved units/bolts with evidence
|
|
16
|
-
- **Operations** → maintain, monitor, respond, stabilize
|
|
17
|
-
|
|
18
|
-
## 3) Use templates
|
|
19
|
-
Templates live in `.iris/aidlc/templates/`. Create artifacts in `memory-bank/`.
|
|
20
|
-
|
|
21
|
-
## 4) Gate everything
|
|
22
|
-
Before changing phases, validate with:
|
|
23
|
-
- `.iris/aidlc/validation/phase-preconditions.md`
|
|
24
|
-
- `.iris/aidlc/validation/quality-checklist.md`
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Skill: Implementation
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Implement bolts against approved units with traceable verification.
|
|
5
|
-
|
|
6
|
-
## Hard Rules
|
|
7
|
-
- MUST stay within unit scope.
|
|
8
|
-
- MUST run verification per unit test plan.
|
|
9
|
-
- MUST log significant decisions.
|
|
10
|
-
|
|
11
|
-
## Procedure
|
|
12
|
-
1. Read unit + bolt.
|
|
13
|
-
2. Implement smallest change set.
|
|
14
|
-
3. Verify and record evidence.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Skill: Refactoring
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Improve internal quality without changing behavior unless approved.
|
|
5
|
-
|
|
6
|
-
## Hard Rules
|
|
7
|
-
- MUST NOT change behavior without updating intent/unit.
|
|
8
|
-
- MUST re-run tests.
|
|
9
|
-
|
|
10
|
-
## Procedure
|
|
11
|
-
1. Define invariants.
|
|
12
|
-
2. Refactor in small steps.
|
|
13
|
-
3. Verify after each step.
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Skill: Scaffold Generation
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Create minimal structure required by the unit.
|
|
5
|
-
|
|
6
|
-
## Hard Rules
|
|
7
|
-
- MUST create only what the unit requires.
|
|
8
|
-
- MUST NOT create speculative modules.
|
|
9
|
-
- MUST keep changes reviewable.
|
|
10
|
-
|
|
11
|
-
## Procedure
|
|
12
|
-
1. Identify required modules and interfaces.
|
|
13
|
-
2. Generate minimal files.
|
|
14
|
-
3. Ensure it builds/runs (if applicable).
|
|
15
|
-
4. Record created paths in the unit.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Skill: Escalation
|
|
2
|
-
|
|
3
|
-
## Hard Rules
|
|
4
|
-
Escalate to Master Agent when:
|
|
5
|
-
- artifacts conflict
|
|
6
|
-
- a phase transition is requested without prerequisites
|
|
7
|
-
- an architectural decision is required
|
|
8
|
-
|
|
9
|
-
## Procedure
|
|
10
|
-
1. Summarize conflict.
|
|
11
|
-
2. Provide options + tradeoffs.
|
|
12
|
-
3. Request explicit decision.
|
|
13
|
-
4. Log outcome.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Skill: Quality Gates
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
Fail-closed quality enforcement.
|
|
5
|
-
|
|
6
|
-
## Hard Rules
|
|
7
|
-
- MUST fail closed: missing evidence = gate failed.
|
|
8
|
-
- MUST record pass/fail in a review/log.
|
|
9
|
-
- MUST NOT proceed after a failed gate.
|
|
10
|
-
|
|
11
|
-
## Procedure
|
|
12
|
-
1. Run checklist.
|
|
13
|
-
2. Verify artifacts exist.
|
|
14
|
-
3. Record results + evidence.
|