@sixsevenai/ai-dlc-installer 1.4.2 → 1.4.4

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.
@@ -68,18 +68,60 @@ Intelligently group staged changes into logical commits.
68
68
 
69
69
  ---
70
70
 
71
+ ## Branch Sync Gate (PR workflows only)
72
+
73
+ <gate id="branch-sync" blocking="true" trigger="--generate-pr, --generate-merge-pr, --generate-merge-pr-tag">
74
+ <description>Ensures the current branch includes all commits from origin/main before creating a PR. Prevents merge conflicts and "branch is behind" failures on GitHub.</description>
75
+
76
+ <action>
77
+ 1. Fetch latest remote state:
78
+ ```bash
79
+ git fetch origin main
80
+ ```
81
+ 2. Check if origin/main is an ancestor of the current branch:
82
+ ```bash
83
+ git merge-base --is-ancestor origin/main HEAD
84
+ ```
85
+ </action>
86
+
87
+ <verify>
88
+ Exit code 0 from `git merge-base --is-ancestor` means the branch already includes origin/main. Continue normally.
89
+ </verify>
90
+
91
+ <on-fail>
92
+ Exit code 1 means origin/main has commits not in this branch.
93
+
94
+ 1. Report to the user: "Branch is behind origin/main. Rebasing to incorporate upstream changes."
95
+ 2. Rebase onto origin/main:
96
+ ```bash
97
+ git rebase origin/main
98
+ ```
99
+ 3. If rebase succeeds cleanly, continue with the PR workflow.
100
+ </on-fail>
101
+
102
+ <on-fail type="rebase-conflict">
103
+ If rebase conflicts occur, **STOP** immediately and report:
104
+
105
+ > "Rebase conflict detected. Resolve conflicts manually, then run `/commit` again."
106
+
107
+ Do NOT force-push or auto-resolve conflicts. Do NOT continue with the PR workflow.
108
+ </on-fail>
109
+ </gate>
110
+
111
+ ---
112
+
71
113
  ## Workflow Options
72
114
 
73
115
  <execution-mode name="generate-pr" trigger="--generate-pr">
74
- Creates a pull request on GitHub
116
+ Creates a pull request on GitHub (runs Branch Sync Gate first)
75
117
  </execution-mode>
76
118
 
77
119
  <execution-mode name="generate-merge-pr" trigger="--generate-merge-pr">
78
- Creates PR, merges to main, and pulls main locally
120
+ Creates PR, merges to main, and pulls main locally (runs Branch Sync Gate first)
79
121
  </execution-mode>
80
122
 
81
123
  <execution-mode name="generate-merge-pr-tag" trigger="--generate-merge-pr-tag">
82
- Creates PR, merges, pulls main, and creates a semantic version tag (v1.0.0 → v1.0.1)
124
+ Creates PR, merges, pulls main, and creates a semantic version tag (v1.0.0 → v1.0.1) (runs Branch Sync Gate first)
83
125
  </execution-mode>
84
126
 
85
127
  ---
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:analyze
3
3
  description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
4
- argument-hint: ""
4
+ argument-hint: "[--offline [spec-name]]"
5
5
  phase: construction
6
6
  allowed-tools: Task, Read, Glob, Grep
7
7
  args: []
@@ -24,6 +24,10 @@ $ARGUMENTS
24
24
 
25
25
  You **MUST** consider the user input before proceeding (if not empty).
26
26
 
27
+ ## Offline Mode
28
+
29
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
30
+
27
31
  ## Goal
28
32
 
29
33
  Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This command MUST run only after `/spec:tasks` has successfully produced a complete `tasks.md`.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:checklist
3
3
  description: Generate a custom checklist for the current feature based on user requirements.
4
- argument-hint: "[domain]"
4
+ argument-hint: "[domain] [--offline [spec-name]]"
5
5
  phase: construction
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, AskUserQuestion
7
7
  args:
@@ -48,6 +48,10 @@ $ARGUMENTS
48
48
 
49
49
  You **MUST** consider the user input before proceeding (if not empty).
50
50
 
51
+ ## Offline Mode
52
+
53
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
54
+
51
55
  ## Execution Steps
52
56
 
53
57
  <execution-steps>
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:clarify
3
3
  description: Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
4
- argument-hint: ""
4
+ argument-hint: "[--offline [spec-name]]"
5
5
  phase: inception
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, AskUserQuestion
7
7
  args: []
@@ -24,6 +24,10 @@ $ARGUMENTS
24
24
 
25
25
  You **MUST** consider the user input before proceeding (if not empty).
26
26
 
27
+ ## Offline Mode
28
+
29
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
30
+
27
31
  ## Outline
28
32
 
29
33
  Goal: Detect and reduce ambiguity or missing decision points in the active feature specification and record the clarifications directly in the spec file.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:complete
3
3
  description: Complete and archive the current spec session, marking it as finished
4
- argument-hint: ""
4
+ argument-hint: "[--offline [spec-name]]"
5
5
  phase: finalization
6
6
  allowed-tools: Bash, Read
7
7
  args: []
@@ -16,6 +16,10 @@ args: []
16
16
 
17
17
  <!-- CONTEXT_ISOLATION:END -->
18
18
 
19
+ ## Offline Mode
20
+
21
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
22
+
19
23
  ## Purpose
20
24
 
21
25
  Complete the current spec workflow session:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:constitution
3
3
  description: Create or update the project constitution from interactive or provided principle inputs, ensuring all dependent templates stay in sync.
4
- argument-hint: "[principles]"
4
+ argument-hint: "[principles] [--offline [spec-name]]"
5
5
  phase: inception
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, AskUserQuestion
7
7
  args:
@@ -20,6 +20,10 @@ $ARGUMENTS
20
20
 
21
21
  You **MUST** consider the user input before proceeding (if not empty).
22
22
 
23
+ ## Offline Mode
24
+
25
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
26
+
23
27
  ## Outline
24
28
 
25
29
  You are updating the project constitution at `.claude/memory/spec/constitution.md`. This file is a TEMPLATE containing placeholder tokens in square brackets (e.g. `[PROJECT_NAME]`, `[PRINCIPLE_1_NAME]`). Your job is to (a) collect/derive concrete values, (b) fill the template precisely, and (c) propagate any amendments across dependent artifacts.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:implement
3
3
  description: Execute the implementation plan by processing and executing all tasks defined in tasks.md
4
- argument-hint: "[phase]"
4
+ argument-hint: "[phase] (--offline NOT supported)"
5
5
  phase: construction
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
7
7
  args:
@@ -27,6 +27,14 @@ $ARGUMENTS
27
27
 
28
28
  You **MUST** consider the user input before proceeding (if not empty).
29
29
 
30
+ ## Offline Mode Gate
31
+
32
+ **BLOCKING**: If `--offline` is passed, STOP immediately with this error:
33
+
34
+ > "spec:implement requires an active AI-DLC session. Remove --offline to use session mode. Specs must be online (with an active session) before implementation can begin."
35
+
36
+ Do NOT proceed with any implementation steps.
37
+
30
38
  ## Outline
31
39
 
32
40
  <execution-steps>
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:plan
3
3
  description: Execute the implementation planning workflow using the plan template to generate design artifacts.
4
- argument-hint: "[--stack tech-stack]"
4
+ argument-hint: "[--stack tech-stack] [--offline [spec-name]]"
5
5
  phase: construction
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
7
7
  args:
@@ -27,6 +27,10 @@ $ARGUMENTS
27
27
 
28
28
  You **MUST** consider the user input before proceeding (if not empty).
29
29
 
30
+ ## Offline Mode
31
+
32
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
33
+
30
34
  ## Outline
31
35
 
32
36
  1. **Setup**: Run the CLI from repo root:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:task-to-issue
3
3
  description: Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts.
4
- argument-hint: ""
4
+ argument-hint: "[--offline [spec-name]]"
5
5
  phase: construction
6
6
  allowed-tools: Task, Read, Glob, Grep, Bash
7
7
  args: []
@@ -24,6 +24,10 @@ $ARGUMENTS
24
24
 
25
25
  You **MUST** consider the user input before proceeding (if not empty).
26
26
 
27
+ ## Offline Mode
28
+
29
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
30
+
27
31
  ## Outline
28
32
 
29
33
  1. Run the CLI from repo root:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:tasks
3
3
  description: Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts.
4
- argument-hint: ""
4
+ argument-hint: "[--offline [spec-name]]"
5
5
  phase: construction
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion
7
7
  args: []
@@ -24,6 +24,10 @@ $ARGUMENTS
24
24
 
25
25
  You **MUST** consider the user input before proceeding (if not empty).
26
26
 
27
+ ## Offline Mode
28
+
29
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
30
+
27
31
  ---
28
32
 
29
33
  ## Outline
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  command: spec:to-intent
3
3
  description: Convert a SpecKit specification into an AI-DLC intent document to bridge spec-driven development with AI-DLC workflow.
4
- argument-hint: "[feature]"
4
+ argument-hint: "[feature] [--offline [spec-name]]"
5
5
  phase: inception
6
6
  allowed-tools: Task, Read, Write, Edit, Glob, Grep, Bash
7
7
  args:
@@ -27,6 +27,10 @@ $ARGUMENTS
27
27
 
28
28
  You **MUST** consider the user input before proceeding (if not empty).
29
29
 
30
+ ## Offline Mode
31
+
32
+ When `--offline` is passed, this command operates without an active AI-DLC session. Session state is stored locally in the spec's own directory (`artifacts/specs/{spec-name}/session-state.json`) instead of `.ai-dlc/session-state.json`. Provide the spec name as an argument if multiple specs exist, or omit it if only one spec is in progress.
33
+
30
34
  ## Purpose
31
35
 
32
36
  This command bridges SpecKit's spec-driven development workflow with the AI-DLC methodology. It converts a completed SpecKit specification (`spec.md`) into an AI-DLC intent document, preserving the work done during specification while enabling the full AI-DLC construction workflow.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sixsevenai/ai-dlc-installer",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "Interactive terminal installer for the AI-DLC framework",
5
5
  "type": "module",
6
6
  "license": "MIT",