project-iris 0.6.5 → 0.6.6

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.
@@ -1005,9 +1005,28 @@ After running the command, verify the changes were applied correctly:
1005
1005
 
1006
1006
  ---
1007
1007
 
1008
- ## Update Construction Log
1008
+ ## Update Construction Log (HARD GATE)
1009
1009
 
1010
- **IMPORTANT**: Update the construction log at key execution points.
1010
+ **⛔ HARD GATE - CONSTRUCTION LOG UPDATES REQUIRED**
1011
+
1012
+ ```text
1013
+ ┌─────────────────────────────────────────────────────────────┐
1014
+ │ CONSTRUCTION LOG - NON-NEGOTIABLE │
1015
+ │ │
1016
+ │ You MUST update the construction log at these points: │
1017
+ │ 1. On first bolt start → Create log using template │
1018
+ │ 2. On bolt start → Add "started" entry │
1019
+ │ 3. On stage completion → Add "stage-complete" entry │
1020
+ │ 4. On bolt completion → Add "completed" entry │
1021
+ │ │
1022
+ │ ⛔ FORBIDDEN: Starting bolt work without log entry │
1023
+ │ ⛔ FORBIDDEN: Completing stage without log entry │
1024
+ │ ⛔ FORBIDDEN: Completing bolt without log entry │
1025
+ │ │
1026
+ │ The construction log provides audit trail for the unit. │
1027
+ │ No log entry = no evidence the work happened. │
1028
+ └─────────────────────────────────────────────────────────────┘
1029
+ ```
1011
1030
 
1012
1031
  ### Location
1013
1032
 
package/lib/installer.js CHANGED
@@ -2,6 +2,7 @@ const fs = require('fs-extra');
2
2
  const path = require('path');
3
3
  const prompts = require('prompts');
4
4
  const yaml = require('js-yaml');
5
+ const { execSync } = require('child_process');
5
6
  const CLIUtils = require('./cli-utils');
6
7
  const InstallerFactory = require('./InstallerFactory');
7
8
  const { FLOWS } = require('./constants');
@@ -350,10 +351,27 @@ async function installFlow(flowKey, toolKeys) {
350
351
  if (await fs.pathExists(sourceScriptsDir)) {
351
352
  await fs.copy(sourceScriptsDir, scriptsDir);
352
353
  CLIUtils.displayStatus('', 'Installed local scripts', 'success');
354
+
355
+ // Install script dependencies (fs-extra, js-yaml)
356
+ // Scripts require these npm packages to function
357
+ const scriptsPackageJson = path.join(scriptsDir, 'package.json');
358
+ if (await fs.pathExists(scriptsPackageJson)) {
359
+ console.log(theme.dim(' Installing script dependencies...'));
360
+ try {
361
+ execSync('npm install --production --silent', {
362
+ cwd: scriptsDir,
363
+ stdio: 'pipe'
364
+ });
365
+ CLIUtils.displayStatus('', 'Installed script dependencies', 'success');
366
+ } catch (npmError) {
367
+ // Non-fatal: warn user but continue installation
368
+ console.log(theme.warning(' Warning: Could not install script dependencies automatically'));
369
+ console.log(theme.dim(` Run: cd ${scriptsDir} && npm install`));
370
+ }
371
+ }
353
372
  }
354
373
 
355
374
  // Note: Scripts are invoked directly via relative path (e.g., node .iris/scripts/bolt-complete.js)
356
- // No npm scripts added to package.json to avoid dependency on package.json for execution
357
375
 
358
376
  // NOTE: memory-bank/ is NOT created during installation
359
377
  // It will be created when user runs project-init
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-iris",
3
- "version": "0.6.5",
3
+ "version": "0.6.6",
4
4
  "description": "Multi-agent orchestration system for AI-native software development. Delivers AI-DLC, Agile, and custom SDLC flows as markdown-based agent systems.",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "iris-scripts",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "description": "Helper scripts for iris AI-DLC workflow",
6
+ "scripts": {
7
+ "bolt-complete": "node bolt-complete.js",
8
+ "status-integrity": "node status-integrity.js",
9
+ "artifact-validator": "node artifact-validator.js"
10
+ },
11
+ "dependencies": {
12
+ "fs-extra": "^11.1.1",
13
+ "js-yaml": "^4.1.0"
14
+ }
15
+ }