project-iris 0.0.11 → 0.0.13
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 +84 -360
- package/dist/cli.js +4 -2
- package/dist/commands/create.js +25 -0
- package/dist/iris/bundle.js +1 -1
- package/dist/iris_bundle/frameworks/iris-core/framework.yaml +9 -0
- package/dist/iris_bundle/frameworks/iris-core/memory/memory-bank.yaml +1 -0
- package/dist/iris_bundle/frameworks/iris-core/policy.yaml +7 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/config/memory-bank.yaml +1 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-template.md +226 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/spike-bolt.md +240 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/requirements-template.md +144 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/stories-template.md +38 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/story-template.md +147 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/system-context-template.md +29 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/unit-brief-template.md +177 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/units-template.md +52 -0
- package/dist/templates/construction/bolt-template.md +226 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
- package/dist/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
- package/dist/templates/construction/bolt-types/spike-bolt.md +240 -0
- package/dist/templates/inception/requirements-template.md +144 -0
- package/dist/templates/inception/stories-template.md +38 -0
- package/dist/templates/inception/story-template.md +147 -0
- package/dist/templates/inception/system-context-template.md +29 -0
- package/dist/templates/inception/unit-brief-template.md +177 -0
- package/dist/templates/inception/units-template.md +52 -0
- package/dist/workflows/bolt-plan.js +57 -28
- package/dist/workflows/intent-inception.js +82 -7
- package/dist/workflows/memory-bank-generator.js +180 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,424 +1,148 @@
|
|
|
1
1
|
# IRIS v0.0.1
|
|
2
2
|
|
|
3
|
-
**IRIS** (Intelligent Repository for Intent-driven Systems) is an AI-native project management framework. It structures your codebase, routes natural language intents to the right agents, and enforces architectural standards through validation gates.
|
|
4
|
-
|
|
5
|
-
## 🚀 Quick Start
|
|
6
|
-
|
|
7
|
-
### New Projects
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
mkdir my-project && cd my-project
|
|
11
|
-
npx project-iris@latest install
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
The installer will:
|
|
15
|
-
- Create `package.json` if missing
|
|
16
|
-
- Set up `.iris/` framework directory
|
|
17
|
-
- Create `memory-bank/` structure
|
|
18
|
-
- Install the default `iris-core` framework
|
|
19
|
-
- **SaaS Bootstrap**: Auto-generates a "Repo Bootstrap" unit (`U000`) if `package.json` is missing.
|
|
20
|
-
- Prompt for IDE selection (defaults to `auto` for internal agent)
|
|
21
|
-
|
|
22
|
-
### Select Your Agent
|
|
23
|
-
|
|
24
|
-
IRIS can function as a standalone agent or bridge to your IDE:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# Use the built-in zero-config agent (Default)
|
|
28
|
-
iris use auto
|
|
29
|
-
|
|
30
|
-
# Bridge to an external IDE (e.g. Cursor, VS Code)
|
|
31
|
-
iris use cursor
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### Existing Projects
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
npx project-iris@latest install
|
|
38
3
|
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
iris status
|
|
4
|
+
██████╗ ███████╗██╗██████╗ ██╗███████╗
|
|
5
|
+
██╔═══██╗██╔════╝██║██╔══██╗██║██╔════╝
|
|
6
|
+
██║ ██║███████╗██║██████╔╝██║███████╗
|
|
7
|
+
██║ ██║╚════██║██║██╔══██╗██║╚════██║
|
|
8
|
+
╚██████╔╝███████║██║██║ ██║██║███████║
|
|
9
|
+
╚═════╝ ╚══════╝╚═╝╚═╝ ╚═╝╚═╝╚══════╝
|
|
46
10
|
```
|
|
47
11
|
|
|
48
|
-
|
|
49
|
-
> - With npx: `npx project-iris <command>`
|
|
50
|
-
> - After global install: `iris <command>`
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## � Global Install
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
npm install -g project-iris@latest
|
|
58
|
-
iris --version
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 🧠 Core Concepts
|
|
64
|
-
|
|
65
|
-
### Lifecycle Phases
|
|
66
|
-
|
|
67
|
-
IRIS divides your project into three phases:
|
|
68
|
-
|
|
69
|
-
| Phase | Focus | Artifacts |
|
|
70
|
-
|-------|-------|-----------|
|
|
71
|
-
| **Inception** | Requirements, architecture | `memory-bank/intents/` |
|
|
72
|
-
| **Construction** | Implementation, testing | `memory-bank/units/`, `memory-bank/bolts/` |
|
|
73
|
-
| **Operations** | Deployment, monitoring | `memory-bank/logs/` |
|
|
74
|
-
|
|
75
|
-
### The Factory Loop (Construction)
|
|
76
|
-
|
|
77
|
-
IRIS automates the delivery process through a deterministic loop:
|
|
78
|
-
|
|
79
|
-
1. **Unit List** (`unit-list.md`) - High-level breakdown of work.
|
|
80
|
-
2. **Unit Briefs** (`unit-brief.md`) - Detailed specs for each unit (Planning).
|
|
81
|
-
3. **Bolts** (`bolt.md`) - Executable tasks derived from briefs (Construction).
|
|
82
|
-
4. **Code & Test** - Implementation and verification (Execution).
|
|
83
|
-
|
|
84
|
-
The workflow engine orchestrates this loop using `iris run`.
|
|
85
|
-
|
|
86
|
-
### Frameworks
|
|
87
|
-
|
|
88
|
-
Frameworks are pluggable configurations that define:
|
|
89
|
-
- **Policy** - Required artifacts and validation gates
|
|
90
|
-
- **Routes** - Intent routing rules
|
|
91
|
-
- **Interview** - Interactive Q&A for intent capture
|
|
92
|
-
- **Artifacts** - Generated document templates
|
|
93
|
-
- **Workflow** - Step execution order
|
|
94
|
-
|
|
95
|
-
### The Memory Bank
|
|
96
|
-
|
|
97
|
-
A standardized documentation structure:
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
memory-bank/
|
|
101
|
-
├── intents/ # Requirements and context
|
|
102
|
-
│ └── default/
|
|
103
|
-
│ ├── requirements.md
|
|
104
|
-
│ └── system-context.md
|
|
105
|
-
├── units/ # Implementation units
|
|
106
|
-
├── bolts/ # Reusable patterns
|
|
107
|
-
├── standards/ # Coding standards
|
|
108
|
-
└── operations/ # Runbooks
|
|
109
|
-
```
|
|
12
|
+
**IRIS** (Intelligent Repository for Intent-driven Systems) is an AI-native project management framework. It structures your codebase, routes natural language intents to the right agents, and enforces architectural standards through validation gates.
|
|
110
13
|
|
|
111
14
|
---
|
|
112
15
|
|
|
113
|
-
##
|
|
114
|
-
|
|
115
|
-
### Intent & Routing
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Route a natural language intent
|
|
119
|
-
iris ask "I need to fix the auth bug"
|
|
120
|
-
|
|
121
|
-
# Interactive intent interview
|
|
122
|
-
iris ask --interactive
|
|
123
|
-
|
|
124
|
-
# Route a natural language intent (uses active agent)
|
|
125
|
-
iris ask "I need to fix the auth bug"
|
|
126
|
-
|
|
127
|
-
# Interactive intent interview
|
|
128
|
-
iris ask --interactive
|
|
129
|
-
|
|
130
|
-
# Machine-readable output
|
|
131
|
-
iris ask --json "scaffold login system"
|
|
132
|
-
```
|
|
16
|
+
## 🚀 Quick Start
|
|
133
17
|
|
|
134
|
-
|
|
18
|
+
### Scenario A: Start a New Project
|
|
135
19
|
|
|
136
|
-
|
|
20
|
+
If you are starting from scratch and want IRIS to set up the foundation:
|
|
137
21
|
|
|
138
22
|
```bash
|
|
139
|
-
|
|
140
|
-
iris
|
|
141
|
-
|
|
142
|
-
# Target specific agent
|
|
143
|
-
iris pack --agent inception
|
|
144
|
-
|
|
145
|
-
# Output to stdout
|
|
146
|
-
iris pack --stdout
|
|
23
|
+
mkdir my-new-project && cd my-new-project
|
|
24
|
+
npx project-iris@latest install
|
|
147
25
|
```
|
|
148
26
|
|
|
149
|
-
|
|
27
|
+
**What happens next?**
|
|
28
|
+
1. **Bootstrap**: IRIS initializes a `package.json` and the `.iris/` framework.
|
|
29
|
+
2. **Memory Bank**: It creates a `memory-bank/` directory for your project documentation.
|
|
30
|
+
3. **First Feature**: You are ready to build.
|
|
150
31
|
|
|
151
32
|
```bash
|
|
152
|
-
#
|
|
153
|
-
iris
|
|
154
|
-
|
|
155
|
-
# Run with a pre-defined intent (seed)
|
|
156
|
-
iris run --new --seed intent-draft.json
|
|
157
|
-
|
|
158
|
-
# Resume the latest run
|
|
159
|
-
iris run --resume
|
|
160
|
-
|
|
161
|
-
# Resume a specific run
|
|
162
|
-
iris run --resume 2026-01-03-21-41-43-abc1
|
|
163
|
-
|
|
164
|
-
# Non-interactive mode (for CI/automation)
|
|
165
|
-
iris run --new --seed draft.json --no-interactive
|
|
166
|
-
|
|
167
|
-
# Machine-readable output
|
|
168
|
-
iris run --json
|
|
33
|
+
# Define your first feature
|
|
34
|
+
iris ask "I want to build a landing page with a hero section"
|
|
169
35
|
```
|
|
170
36
|
|
|
171
|
-
|
|
172
|
-
145: 1. **Interview** - Capture intent (interactive or seed)
|
|
173
|
-
146: 2. **Artifacts** - Generate documents from templates
|
|
174
|
-
147: 3. **Plan** - Create unit briefs from unit list
|
|
175
|
-
148: 4. **Build** - Generate bolts from approved briefs
|
|
176
|
-
149: 5. **Execute** - Run bolt commands and generate test reports
|
|
177
|
-
150: 6. **Validate** - Check policy compliance
|
|
178
|
-
151: 7. **Pack** - Create context bundle
|
|
179
|
-
152: 8. **Handoff** - Generate final summary
|
|
37
|
+
### Scenario B: Add to Existing Project
|
|
180
38
|
|
|
181
|
-
|
|
39
|
+
If you have an existing codebase and want to add AI-driven management:
|
|
182
40
|
|
|
183
41
|
```bash
|
|
184
|
-
|
|
185
|
-
iris
|
|
186
|
-
|
|
187
|
-
# Use custom input/output
|
|
188
|
-
iris generate --in custom-draft.json --out artifacts/
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### Validation
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
# Check policy compliance
|
|
195
|
-
iris validate
|
|
196
|
-
|
|
197
|
-
# Auto-fix missing artifacts
|
|
198
|
-
iris validate --fix
|
|
199
|
-
|
|
200
|
-
# Strict mode (fail on warnings)
|
|
201
|
-
iris validate --strict
|
|
42
|
+
cd my-existing-project
|
|
43
|
+
npx project-iris@latest install
|
|
202
44
|
```
|
|
203
45
|
|
|
204
|
-
|
|
46
|
+
**What happens next?**
|
|
47
|
+
1. **Analysis**: IRIS scans your project to understand its structure.
|
|
48
|
+
2. **Integration**: It adds the `.iris` folder without touching your source code.
|
|
49
|
+
3. **Refactor/Build**: You can now use IRIS to manage new features or refactors.
|
|
205
50
|
|
|
206
51
|
```bash
|
|
207
|
-
#
|
|
208
|
-
iris
|
|
209
|
-
|
|
210
|
-
# Request phase transition
|
|
211
|
-
iris phase set construction
|
|
212
|
-
|
|
213
|
-
# Validate and apply transition
|
|
214
|
-
iris validate --apply
|
|
52
|
+
# Example: Ask IRIS to plan a refactor
|
|
53
|
+
iris ask "Refactor the authentication module to use tokens"
|
|
215
54
|
```
|
|
216
55
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
# Start automated workflow
|
|
221
|
-
iris develop "Build a dashboard UI"
|
|
222
|
-
|
|
223
|
-
# Resume interrupted workflow
|
|
224
|
-
iris develop --resume <runId>
|
|
56
|
+
---
|
|
225
57
|
|
|
226
|
-
|
|
227
|
-
iris develop --ide cursor "intent"
|
|
58
|
+
## 🔄 The IRIS Workflow
|
|
228
59
|
|
|
229
|
-
|
|
230
|
-
iris develop --gate auto "intent"
|
|
231
|
-
```
|
|
60
|
+
IRIS manages development through a deterministic lifecycle. Whether you are building from scratch or maintaining legacy code, the loop is the same:
|
|
232
61
|
|
|
233
|
-
###
|
|
62
|
+
### 1. Inception (Defining *What*)
|
|
63
|
+
Before writing code, we define the requirements.
|
|
234
64
|
|
|
235
|
-
|
|
65
|
+
* **Command**: `iris ask "Your intent here"`
|
|
66
|
+
* **Action**: IRIS interviews you (or uses your prompt) to generate a **Requirements** document in `memory-bank/intents/`.
|
|
67
|
+
* **Result**: A clear, approved plan of what to build.
|
|
236
68
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
iris bridge serve
|
|
69
|
+
### 2. Construction (Building *How*)
|
|
70
|
+
Once requirements are set, we enter the **Factory Loop**:
|
|
240
71
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
72
|
+
1. **Plan**: IRIS breaks the work down into **Units** (logical chunks of work).
|
|
73
|
+
2. **Brief**: Each Unit gets a **Unit Brief** (technical spec).
|
|
74
|
+
3. **Bolt**: Briefs are converted into **Bolts** (executable tasks).
|
|
75
|
+
4. **Execute**: The Agent writes code and runs tests.
|
|
244
76
|
|
|
245
|
-
|
|
77
|
+
* **Command**: `iris run` (Or `iris develop` for the automated loop)
|
|
246
78
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
iris doctor
|
|
250
|
-
|
|
251
|
-
# Show version
|
|
252
|
-
iris --version
|
|
253
|
-
```
|
|
79
|
+
### 3. Operations (Running It)
|
|
80
|
+
IRIS monitors the health of the project and manages deployment (future scope).
|
|
254
81
|
|
|
255
82
|
---
|
|
256
83
|
|
|
257
|
-
##
|
|
84
|
+
## 🧠 Key Concepts
|
|
258
85
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
├── .iris/
|
|
262
|
-
│ ├── state.yaml # Current phase, framework, active flow
|
|
263
|
-
│ ├── policy.yaml # (Legacy) Validation rules
|
|
264
|
-
│ ├── routes.yaml # (Legacy) Intent routing
|
|
265
|
-
│ ├── frameworks/ # Installed frameworks
|
|
266
|
-
│ │ └── iris-core/
|
|
267
|
-
│ ├── runs/ # Workflow run history
|
|
268
|
-
│ │ ├── latest # Pointer to latest run
|
|
269
|
-
│ │ └── 2026-01-03-.../ # Run directory
|
|
270
|
-
│ │ ├── run.json # Run state
|
|
271
|
-
│ │ ├── events.ndjson # Event log
|
|
272
|
-
│ │ ├── intent-draft.json
|
|
273
|
-
│ │ ├── artifacts.json
|
|
274
|
-
│ │ ├── validate.json
|
|
275
|
-
│ │ ├── pack.md
|
|
276
|
-
│ │ └── handoff.json
|
|
277
|
-
│ ├── inbox/ # Generated context packs
|
|
278
|
-
│ └── bridge/ # IDE bridge files
|
|
279
|
-
│ ├── inbox/
|
|
280
|
-
│ ├── outbox/
|
|
281
|
-
│ └── state/
|
|
282
|
-
├── memory-bank/ # Project documentation
|
|
283
|
-
└── package.json
|
|
284
|
-
```
|
|
86
|
+
### The Memory Bank (`memory-bank/`)
|
|
87
|
+
Your project's brain. IRIS stores all context here, so any AI agent (or human) can understand the project instantly.
|
|
285
88
|
|
|
286
|
-
|
|
89
|
+
* `intents/`: What we want to build (the "Why").
|
|
90
|
+
* `units/`: How we are building it (the "How").
|
|
91
|
+
* `bolts/`: The atomic tasks (the "What").
|
|
92
|
+
* `runbooks/`: Operational guides.
|
|
287
93
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
### State (`state.yaml`)
|
|
291
|
-
|
|
292
|
-
```yaml
|
|
293
|
-
version: 1
|
|
294
|
-
framework:
|
|
295
|
-
current: iris-core
|
|
296
|
-
version: null
|
|
297
|
-
phase:
|
|
298
|
-
current: inception
|
|
299
|
-
requested: null
|
|
300
|
-
active:
|
|
301
|
-
intent_id: null
|
|
302
|
-
flow: null
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
### Policy (`policy.yaml`)
|
|
306
|
-
|
|
307
|
-
```yaml
|
|
308
|
-
version: 1
|
|
309
|
-
phases:
|
|
310
|
-
inception:
|
|
311
|
-
requires:
|
|
312
|
-
- path: memory-bank/intents/
|
|
313
|
-
type: directory
|
|
314
|
-
gates: []
|
|
315
|
-
transitions:
|
|
316
|
-
- from: inception
|
|
317
|
-
to: construction
|
|
318
|
-
```
|
|
94
|
+
### Agents & Bridges
|
|
95
|
+
IRIS works where you work.
|
|
319
96
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
schemaVersion: 1
|
|
324
|
-
routes:
|
|
325
|
-
- match: "bug|fix|error"
|
|
326
|
-
agent: construction
|
|
327
|
-
- match: ".*"
|
|
328
|
-
agent: inception
|
|
329
|
-
```
|
|
97
|
+
* **Auto (Default)**: IRIS runs as a standalone agent in your terminal.
|
|
98
|
+
* **Bridge**: IRIS connects to your AI IDE (Cursor, Windsurf, VS Code).
|
|
99
|
+
* Command: `iris use cursor` or `iris use windsurf`.
|
|
330
100
|
|
|
331
101
|
---
|
|
332
102
|
|
|
333
|
-
##
|
|
334
|
-
|
|
335
|
-
###
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
- `0` - Success
|
|
356
|
-
- `1` - Failure (validation error, step failed)
|
|
357
|
-
- `2` - Blocked (requires input, non-interactive mode)
|
|
358
|
-
|
|
359
|
-
### Event Log (`events.ndjson`)
|
|
360
|
-
|
|
361
|
-
```json
|
|
362
|
-
{"ts":"2026-01-03T21:41:43.732Z","type":"RUN_STARTED"}
|
|
363
|
-
{"ts":"2026-01-03T21:41:43.733Z","type":"STEP_STARTED","stepId":"interview"}
|
|
364
|
-
{"ts":"2026-01-03T21:41:43.733Z","type":"STEP_DONE","stepId":"interview"}
|
|
365
|
-
```
|
|
103
|
+
## 📚 Command Reference
|
|
104
|
+
|
|
105
|
+
### Planning & Context
|
|
106
|
+
| Command | Description |
|
|
107
|
+
| content | content |
|
|
108
|
+
| `iris ask "<intent>"` | Route a new intent or feature request. |
|
|
109
|
+
| `iris ask --interactive` | Start a Q&A session to define requirements. |
|
|
110
|
+
| `iris pack` | tailored context bundle for LLMs. |
|
|
111
|
+
|
|
112
|
+
### Execution
|
|
113
|
+
| Command | Description |
|
|
114
|
+
| content | content |
|
|
115
|
+
| `iris run` | Execute the next step in the workflow loop. |
|
|
116
|
+
| `iris develop "<intent>"` | Run the full automated loop for an intent. |
|
|
117
|
+
| `iris run --resume` | Resume an interrupted workflow. |
|
|
118
|
+
|
|
119
|
+
### Management
|
|
120
|
+
| Command | Description |
|
|
121
|
+
| content | content |
|
|
122
|
+
| `iris status` | Show current phase, active agent, and progress. |
|
|
123
|
+
| `iris validate` | Verify project structure and memory bank integrity. |
|
|
124
|
+
| `iris doctor` | Check environment health. |
|
|
366
125
|
|
|
367
126
|
---
|
|
368
127
|
|
|
369
128
|
## 👥 Contributing
|
|
370
129
|
|
|
371
|
-
|
|
130
|
+
We welcome contributions to IRIS itself!
|
|
372
131
|
|
|
132
|
+
### Setup
|
|
373
133
|
```bash
|
|
374
134
|
git clone <repo-url>
|
|
375
135
|
cd project-iris
|
|
376
136
|
npm ci
|
|
377
137
|
npm run build
|
|
378
138
|
npm link
|
|
379
|
-
iris --version
|
|
380
139
|
```
|
|
381
140
|
|
|
382
|
-
###
|
|
383
|
-
|
|
141
|
+
### Verification
|
|
384
142
|
```bash
|
|
385
|
-
#
|
|
386
|
-
npm run build
|
|
387
|
-
npm run test
|
|
388
|
-
|
|
389
|
-
# Run all verification
|
|
143
|
+
# Run all verification checks
|
|
390
144
|
npm run verify
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
### Testing
|
|
394
145
|
|
|
395
|
-
|
|
396
|
-
# Unit tests
|
|
146
|
+
# Run unit tests
|
|
397
147
|
npm run test:unit
|
|
398
|
-
|
|
399
|
-
# Smoke tests
|
|
400
|
-
npm run test:smoke
|
|
401
|
-
|
|
402
|
-
# All tests
|
|
403
|
-
npm test
|
|
404
148
|
```
|
|
405
|
-
|
|
406
|
-
### Unlink
|
|
407
|
-
|
|
408
|
-
```bash
|
|
409
|
-
npm unlink -g project-iris
|
|
410
|
-
```
|
|
411
|
-
|
|
412
|
-
---
|
|
413
|
-
|
|
414
|
-
## 📚 Learn More
|
|
415
|
-
|
|
416
|
-
- [Baseline Documentation](docs/baseline-step0.md)
|
|
417
|
-
- [Framework Development](docs/frameworks.md)
|
|
418
|
-
- [Artifact Templates](docs/artifacts.md)
|
|
419
|
-
|
|
420
|
-
---
|
|
421
|
-
|
|
422
|
-
## License
|
|
423
|
-
|
|
424
|
-
MIT
|
package/dist/cli.js
CHANGED
|
@@ -15,11 +15,12 @@ import { bridgeCommand } from "./commands/bridge.js";
|
|
|
15
15
|
import { frameworkCommand } from "./commands/framework.js";
|
|
16
16
|
import { generateCommand } from "./commands/generate.js";
|
|
17
17
|
import { useCommand } from "./commands/use.js";
|
|
18
|
+
import { createCommand } from "./commands/create.js";
|
|
18
19
|
const program = new Command();
|
|
19
20
|
program
|
|
20
21
|
.name("iris")
|
|
21
22
|
.description("IRIS CLI - Intelligent Repository for Intent-driven Systems")
|
|
22
|
-
.version("0.0.
|
|
23
|
+
.version("0.0.12")
|
|
23
24
|
.addCommand(installCommand)
|
|
24
25
|
.addCommand(uninstallCommand)
|
|
25
26
|
.addCommand(frameworkCommand)
|
|
@@ -34,5 +35,6 @@ program
|
|
|
34
35
|
.addCommand(doctorCommand)
|
|
35
36
|
.addCommand(developCommand)
|
|
36
37
|
.addCommand(bridgeCommand)
|
|
37
|
-
.addCommand(useCommand)
|
|
38
|
+
.addCommand(useCommand)
|
|
39
|
+
.addCommand(createCommand);
|
|
38
40
|
program.parseAsync(process.argv);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { generateMemoryBankStructure } from "../workflows/memory-bank-generator.js";
|
|
3
|
+
import { createConnector } from "../bridge/connector-factory.js";
|
|
4
|
+
import kleur from "kleur";
|
|
5
|
+
export const createCommand = new Command("create")
|
|
6
|
+
.description("Create memory bank artifacts")
|
|
7
|
+
.addCommand(new Command("intent")
|
|
8
|
+
.description("Create a new intent with full structure")
|
|
9
|
+
.argument("<intent>", "Intent description")
|
|
10
|
+
.action(async (intent) => {
|
|
11
|
+
console.log(kleur.bold(`Creating intent: ${intent}`));
|
|
12
|
+
const connector = createConnector("auto");
|
|
13
|
+
try {
|
|
14
|
+
await generateMemoryBankStructure({
|
|
15
|
+
intent,
|
|
16
|
+
answers: {}, // No answers for pure creation, or we could prompt
|
|
17
|
+
connector
|
|
18
|
+
});
|
|
19
|
+
console.log(kleur.green("✓ Intent created successfully"));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error(kleur.red(`Failed to create intent: ${error.message}`));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
}));
|
package/dist/iris/bundle.js
CHANGED
|
@@ -20,7 +20,7 @@ export function getBundleRoot() {
|
|
|
20
20
|
path.resolve(__dirname, "../../iris_bundle") // Another dist layout possibility
|
|
21
21
|
];
|
|
22
22
|
for (const candidate of candidates) {
|
|
23
|
-
if (fs.existsSync(candidate) && fs.existsSync(path.join(candidate, "
|
|
23
|
+
if (fs.existsSync(candidate) && fs.existsSync(path.join(candidate, "frameworks"))) {
|
|
24
24
|
return candidate;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
metadata: true
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
metadata: true
|