glori-builder 1.0.0 → 1.0.1

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/.claude/CLAUDE.md CHANGED
@@ -47,6 +47,17 @@ Skip this if:
47
47
  - PRs require human approval before merge
48
48
  - Max 3 QA failures on an issue before escalating to the user — do not loop forever
49
49
 
50
+ ## Pipeline Mode — No Stops
51
+
52
+ Once `/issue-prd` starts the pipeline, run every stage to completion without asking for confirmation, plan review, or approval at any intermediate point. Never ask "does this look right?", "should I proceed?", or "want to review before continuing?"
53
+
54
+ The only valid reasons to pause:
55
+ - A question only the user can answer (no assumption is reasonable)
56
+ - QA fails 3 times
57
+ - Reviewer flags a Critical security issue
58
+
59
+ The user should be able to `/issue-prd QUE-123` and immediately start another issue in a parallel session.
60
+
50
61
  ## Stack and Verification
51
62
 
52
63
  Stack and verification commands live in the **project** `.claude/CLAUDE.md`.
@@ -67,3 +67,5 @@ When appending to `.claude/decisions.md`:
67
67
  ## Output Contract
68
68
 
69
69
  `.issue/architecture-decision.md` committed before reporting complete. Memory and decisions updated if anything new was learned.
70
+
71
+ **Do not ask the orchestrator to review the plan.** Produce it, commit it, report complete. The pipeline continues immediately.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: git-workflow
3
- description: Git operations specialist. Commits, pushes, and creates PRs to main using squash merge. Never operates without explicit QA pass AND reviewer approval. Use as the final step in the issue pipeline.
3
+ description: Git operations specialist. Commits, pushes, creates PRs, and updates Linear status to PR Ready. Never operates without explicit QA pass AND reviewer approval. Use as the final step in the issue pipeline.
4
4
  tools: Bash, Read
5
5
  model: haiku
6
6
  permissionMode: acceptEdits
@@ -23,9 +23,39 @@ If either is missing, stop and report to the orchestrator.
23
23
  1. Stage all changes on the issue branch: `git add -A`
24
24
  2. Commit using conventional format (see below)
25
25
  3. Push the issue branch: `git push -u origin <branch>`
26
- 4. Create a squash-merge PR to main: `gh pr create --title "..." --body "..." --squash`
27
- 5. Update Linear issue status if instructed by the orchestrator
28
- 6. Report the PR URL to the orchestrator
26
+ 4. Create a squash-merge PR to main: `gh pr create --title "..." --body "..."`
27
+ 5. Update Linear issue status to the "In Review" or "PR Ready" state (whichever exists for this team)
28
+ 6. Add a Linear comment with the PR URL
29
+ 7. Report the PR URL to the orchestrator
30
+
31
+ ## Update Linear Status
32
+
33
+ After the PR is created, find and set the appropriate state. Query the team's states to find one named "PR Ready", "In Review", or similar (type: `inReview`):
34
+
35
+ ```bash
36
+ curl -s -X POST https://api.linear.app/graphql \
37
+ -H "Authorization: $LINEAR_API_KEY" \
38
+ -H "Content-Type: application/json" \
39
+ -d '{"query": "{ team(id: \"TEAM_UUID\") { states { nodes { id name type } } } }"}'
40
+ ```
41
+
42
+ Find the state with type `inReview`. Update the issue:
43
+
44
+ ```bash
45
+ curl -s -X POST https://api.linear.app/graphql \
46
+ -H "Authorization: $LINEAR_API_KEY" \
47
+ -H "Content-Type: application/json" \
48
+ -d '{"query": "mutation { issueUpdate(id: \"ISSUE_UUID\", input: { stateId: \"IN_REVIEW_STATE_ID\" }) { success } }"}'
49
+ ```
50
+
51
+ Add a comment with the PR link:
52
+
53
+ ```bash
54
+ curl -s -X POST https://api.linear.app/graphql \
55
+ -H "Authorization: $LINEAR_API_KEY" \
56
+ -H "Content-Type: application/json" \
57
+ -d '{"query": "mutation { commentCreate(input: { issueId: \"ISSUE_UUID\", body: \"PR ready for review: {PR_URL}\" }) { success } }"}'
58
+ ```
29
59
 
30
60
  ## Commit Format
31
61
 
@@ -167,7 +167,8 @@ If CI fails after 2 minutes: treat as QA failure, increment retry counter.
167
167
  ### Step 2f: Update status
168
168
 
169
169
  On **success**:
170
- - Update Linear issue to Done
170
+ - Find the completed state: query `team.states` and find the state with `type: "completed"` — this is whatever your workspace calls it ("Complete", "Done", etc.)
171
+ - Update Linear issue to that state
171
172
  - Update state file: `"status": "complete", "pr": PR_NUMBER`
172
173
  - Add Linear comment: "Completed by Glori Builder auto-pilot."
173
174
 
@@ -50,7 +50,7 @@ Display clearly:
50
50
  - **Description**:
51
51
  {description}
52
52
 
53
- If the issue state is "In Progress" or "Done", warn the user: "This issue is already {state.name}. Stopping to avoid duplicate work." Then stop.
53
+ If the issue state type is `started` or `completed` (i.e. already in progress or finished), warn the user: "This issue is already {state.name}. Stopping to avoid duplicate work." Then stop.
54
54
 
55
55
  ### Step 2: Evaluate and Clarify
56
56
 
@@ -80,9 +80,27 @@ git branch --show-current
80
80
 
81
81
  Confirm you are on the feature branch before continuing.
82
82
 
83
- ### Step 4: Comment on Linear Issue
83
+ ### Step 4: Set Linear Status to In Progress
84
84
 
85
- Add a comment to the Linear issue to mark it as in progress:
85
+ First, get the "In Progress" state ID for this team:
86
+
87
+ ```bash
88
+ curl -s -X POST https://api.linear.app/graphql \
89
+ -H "Authorization: $LINEAR_API_KEY" \
90
+ -H "Content-Type: application/json" \
91
+ -d '{"query": "{ team(id: \"TEAM_UUID\") { states { nodes { id name type } } } }"}'
92
+ ```
93
+
94
+ Find the state with `type: "started"` (this is the In Progress state). Then update the issue:
95
+
96
+ ```bash
97
+ curl -s -X POST https://api.linear.app/graphql \
98
+ -H "Authorization: $LINEAR_API_KEY" \
99
+ -H "Content-Type: application/json" \
100
+ -d '{"query": "mutation { issueUpdate(id: \"ISSUE_UUID\", input: { stateId: \"IN_PROGRESS_STATE_ID\" }) { success issue { state { name } } } }"}'
101
+ ```
102
+
103
+ Then add a comment:
86
104
 
87
105
  ```bash
88
106
  curl -s -X POST https://api.linear.app/graphql \
@@ -91,18 +109,30 @@ curl -s -X POST https://api.linear.app/graphql \
91
109
  -d '{"query": "mutation { commentCreate(input: { issueId: \"ISSUE_UUID\", body: \"Pipeline started — architect building implementation plan.\" }) { success } }"}'
92
110
  ```
93
111
 
94
- Replace `ISSUE_UUID` with the `id` field (UUID) from the Step 1b response.
112
+ Replace `TEAM_UUID`, `ISSUE_UUID`, and `IN_PROGRESS_STATE_ID` with the values from Steps 1a and 1b.
113
+
114
+ ### Step 5: Hand Off and Run to Completion
95
115
 
96
- ### Step 5: Hand Off
116
+ **PIPELINE MODE: do not stop between stages.** Once this step begins, run the full pipeline without asking for confirmation, review, or approval at any intermediate point. The only valid reasons to stop are:
117
+ - A genuine question only the user can answer (no assumptions possible)
118
+ - QA failing 3 times in a row
119
+ - Reviewer flagging a Critical security issue
97
120
 
98
- Tell the orchestrator:
121
+ Tell the orchestrator the pipeline is starting, then immediately invoke each agent in sequence:
99
122
 
100
- > "Issue $ARGUMENTS is ready. Branch: {branch-name}. Starting pipeline: architect developer(s) QA → reviewer → git-workflow."
123
+ 1. **Architect** implementation plan, file ownership map, acceptance criteria
124
+ 2. **Designer** (if architect flagged `designer_required: true`) — design spec
125
+ 3. **Developer(s)** — parallel implementation in separate worktrees
126
+ 4. **Merge sub-branches** into feature branch
127
+ 5. **QA** — prove green with exit codes (up to 3 retries, fix and rerun on failure)
128
+ 6. **Reviewer** — semantic review of full diff (fix and re-QA on rejection)
129
+ 7. **git-workflow** — commit, push, squash PR to main
101
130
 
102
- Then invoke the architect agent to create the implementation plan for this issue, passing it the issue title, description, and any clarifications from Step 2.
131
+ Report when PR is created. That is the end of this issue's pipeline.
103
132
 
104
133
  ## Notes
105
134
  - LINEAR_API_KEY must be set as an environment variable
106
135
  - The architect creates the implementation PRD — this skill does not
107
- - If the issue is already In Progress or Done, warn the user and stop
136
+ - If the issue state type is `started` or `completed`, warn the user and stop — check type not name so it works for any workspace ("Complete", "Done", etc.)
137
+ - Never stop mid-pipeline to ask "does this look right?" — produce output and continue
108
138
  - Never set the issue to "Queued" — that was the old runner pattern
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Check for and apply updates to quetrex-base. Shows current vs latest version and updates if behind.
2
+ description: Check for and apply updates to Glori Builder. Shows current vs latest version and updates if behind.
3
3
  ---
4
4
 
5
5
  # Quetrex Update
@@ -7,30 +7,30 @@ description: Check for and apply updates to quetrex-base. Shows current vs lates
7
7
  ## Step 1: Check Installed Version
8
8
 
9
9
  ```bash
10
- npm list -g @quetrex/base --depth=0 --json 2>/dev/null
10
+ npm list -g glori-builder --depth=0 --json 2>/dev/null
11
11
  ```
12
12
 
13
13
  Extract the installed version from the JSON output.
14
14
 
15
- If `@quetrex/base` is not found in the output, tell the user: "quetrex-base does not appear to be installed globally. Install it with: `npm install -g @quetrex/base`" and stop.
15
+ If `glori-builder` is not found in the output, tell the user: "Glori Builder does not appear to be installed globally. Install it with: `npm install -g glori-builder`" and stop.
16
16
 
17
17
  ## Step 2: Check Latest Version
18
18
 
19
19
  ```bash
20
- npm show @quetrex/base version 2>/dev/null
20
+ npm show glori-builder version 2>/dev/null
21
21
  ```
22
22
 
23
23
  ## Step 3: Compare
24
24
 
25
25
  If installed == latest:
26
- > "You're on the latest version of quetrex-base (v{version}). Nothing to do."
26
+ > "You're on the latest version of Glori Builder (v{version}). Nothing to do."
27
27
 
28
28
  Clear the flag file if it exists: `rm -f ~/.claude/.quetrex-update-available`
29
29
 
30
30
  Stop.
31
31
 
32
32
  If installed != latest, display:
33
- > "quetrex-base update available
33
+ > "Glori Builder update available
34
34
  > Installed: v{installed}
35
35
  > Latest: v{latest}
36
36
  >
@@ -43,7 +43,7 @@ Wait for confirmation before proceeding.
43
43
  ## Step 4: Apply Update
44
44
 
45
45
  ```bash
46
- npm install -g @quetrex/base@latest
46
+ npm install -g glori-builder@latest
47
47
  ```
48
48
 
49
49
  The postinstall script runs automatically and copies all updated files to `~/.claude/`.
@@ -52,7 +52,7 @@ The postinstall script runs automatically and copies all updated files to `~/.cl
52
52
 
53
53
  ```bash
54
54
  rm -f ~/.claude/.quetrex-update-available
55
- npm list -g @quetrex/base --depth=0
55
+ npm list -g glori-builder --depth=0
56
56
  ```
57
57
 
58
58
  Report:
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # Daily background check for quetrex-base updates.
2
+ # Daily background check for Glori Builder updates.
3
3
  # Runs on session Stop. Fast exit if checked within 24 hours.
4
4
 
5
5
  TIMESTAMP_FILE="$HOME/.claude/.quetrex-last-check"
@@ -19,10 +19,10 @@ date +%s > "$TIMESTAMP_FILE"
19
19
 
20
20
  # Run the npm check in the background so it doesn't delay session exit
21
21
  (
22
- INSTALLED=$(npm list -g @quetrex/base --depth=0 --json 2>/dev/null \
23
- | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('dependencies',{}).get('@quetrex/base',{}).get('version',''))" 2>/dev/null)
22
+ INSTALLED=$(npm list -g glori-builder --depth=0 --json 2>/dev/null \
23
+ | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('dependencies',{}).get('glori-builder',{}).get('version',''))" 2>/dev/null)
24
24
 
25
- LATEST=$(npm show @quetrex/base version 2>/dev/null)
25
+ LATEST=$(npm show glori-builder version 2>/dev/null)
26
26
 
27
27
  if [ -n "$INSTALLED" ] && [ -n "$LATEST" ] && [ "$INSTALLED" != "$LATEST" ]; then
28
28
  echo "$LATEST" > "$FLAG_FILE"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glori-builder",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Glori Builder — Claude Code base configuration for development teams. Agents, skills, and commands for a complete AI-powered development pipeline.",
5
5
  "scripts": {
6
6
  "postinstall": "node install.js"