project-iris 0.0.12 → 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 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
- ### Verify Installation
41
-
42
- ```bash
43
- iris --help
44
- iris validate
45
- iris status
4
+ ██████╗ ███████╗██╗██████╗ ██╗███████╗
5
+ ██╔═══██╗██╔════╝██║██╔══██╗██║██╔════╝
6
+ ██║ ██║███████╗██║██████╔╝██║███████╗
7
+ ██║ ██║╚════██║██║██╔══██╗██║╚════██║
8
+ ╚██████╔╝███████║██║██║ ██║██║███████║
9
+ ╚═════╝ ╚══════╝╚═╝╚═╝ ╚═╝╚═╝╚══════╝
46
10
  ```
47
11
 
48
- > **Note**: The npm package is `project-iris`, but the CLI command is `iris`.
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
- ## 🔄 Commands
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
- > **Note**: `iris ask` uses the active agent set by `iris use`. Default is `auto` (In-Process Agent).
18
+ ### Scenario A: Start a New Project
135
19
 
136
- ### Context Generation
20
+ If you are starting from scratch and want IRIS to set up the foundation:
137
21
 
138
22
  ```bash
139
- # Generate context pack for current phase
140
- iris pack
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
- ### Workflow Execution
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
- # Start a new workflow run
153
- iris run --new
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
- 144: **Workflow Steps:**
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
- ### Artifact Generation
39
+ If you have an existing codebase and want to add AI-driven management:
182
40
 
183
41
  ```bash
184
- # Generate artifacts from intent draft
185
- iris generate
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
- ### Lifecycle Management
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
- # View current status
208
- iris status
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
- ### Automated Development
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
- # Override IDE
227
- iris develop --ide cursor "intent"
58
+ ## 🔄 The IRIS Workflow
228
59
 
229
- # Auto-approve gates
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
- ### Bridge (IDE Integration)
62
+ ### 1. Inception (Defining *What*)
63
+ Before writing code, we define the requirements.
234
64
 
235
- IRIS "Auto" mode works out of the box. To use an external agent (like Cursor Composer or Windsurf), you must start the bridge:
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
- ```bash
238
- # Start bridge helper (only needed for external IDEs)
239
- iris bridge serve
69
+ ### 2. Construction (Building *How*)
70
+ Once requirements are set, we enter the **Factory Loop**:
240
71
 
241
- # Check bridge status
242
- iris bridge status
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
- ### Diagnostics
77
+ * **Command**: `iris run` (Or `iris develop` for the automated loop)
246
78
 
247
- ```bash
248
- # Check environment
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
- ## 📁 Directory Structure
84
+ ## 🧠 Key Concepts
258
85
 
259
- ```
260
- your-project/
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
- ## Configuration
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
- ### Routes (`routes.yaml`)
321
-
322
- ```yaml
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
- ## 🤖 Machine Interface
334
-
335
- ### `iris run --json`
336
-
337
- Outputs a single JSON object (RunState):
338
-
339
- ```json
340
- {
341
- "schemaVersion": 1,
342
- "runId": "2026-01-03-21-41-43-abc1",
343
- "framework": { "id": "iris-core", "version": null },
344
- "steps": {
345
- "interview": { "status": "done", ... },
346
- "artifacts": { "status": "done", ... },
347
- "validate": { "status": "done", ... },
348
- "pack": { "status": "done", ... },
349
- "handoff": { "status": "done", ... }
350
- }
351
- }
352
- ```
353
-
354
- **Exit Codes:**
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
- ### Setup
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
- ### Development
383
-
141
+ ### Verification
384
142
  ```bash
385
- # Make changes to src/
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
- ```bash
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
@@ -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, ".iris"))) {
23
+ if (fs.existsSync(candidate) && fs.existsSync(path.join(candidate, "frameworks"))) {
24
24
  return candidate;
25
25
  }
26
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-iris",
3
- "version": "0.0.12",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "iris": "dist/cli.js",