guild-agents 0.2.5 → 0.2.7
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/bin/guild.js +7 -7
- package/package.json +4 -3
- package/src/commands/__tests__/new-agent.test.js +3 -3
- package/src/commands/__tests__/status.test.js +2 -2
- package/src/commands/init.js +44 -44
- package/src/commands/new-agent.js +37 -37
- package/src/commands/status.js +11 -11
- package/src/templates/agents/advisor.md +29 -29
- package/src/templates/agents/bugfix.md +32 -32
- package/src/templates/agents/code-reviewer.md +32 -32
- package/src/templates/agents/db-migration.md +32 -32
- package/src/templates/agents/developer.md +32 -32
- package/src/templates/agents/platform-expert.md +36 -36
- package/src/templates/agents/product-owner.md +32 -32
- package/src/templates/agents/qa.md +31 -31
- package/src/templates/agents/tech-lead.md +32 -32
- package/src/templates/skills/build-feature/SKILL.md +85 -85
- package/src/templates/skills/council/SKILL.md +68 -68
- package/src/templates/skills/dev-flow/SKILL.md +31 -31
- package/src/templates/skills/guild-specialize/SKILL.md +68 -68
- package/src/templates/skills/new-feature/SKILL.md +34 -34
- package/src/templates/skills/qa-cycle/SKILL.md +39 -39
- package/src/templates/skills/review/SKILL.md +35 -35
- package/src/templates/skills/session-end/SKILL.md +33 -33
- package/src/templates/skills/session-start/SKILL.md +32 -32
- package/src/templates/skills/status/SKILL.md +33 -33
- package/src/utils/generators.js +47 -47
- package/src/utils/github.js +20 -20
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: dev-flow
|
|
3
|
-
description: "
|
|
3
|
+
description: "Shows current pipeline phase and what comes next"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Dev Flow
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Shows the current phase of the development pipeline and suggests the next step. Useful for resuming work when you do not remember where you left off in the flow.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- When resuming work and you do not remember the current phase
|
|
14
|
+
- To see the progress of the build-feature pipeline
|
|
15
|
+
- To decide which skill to run next
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Usage
|
|
18
18
|
|
|
19
19
|
`/dev-flow`
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Process
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### Step 1 — Read state
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Read `SESSION.md` to determine:
|
|
26
26
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
27
|
+
- Whether there is a feature in progress
|
|
28
|
+
- Which pipeline phase it is in
|
|
29
|
+
- What has been completed and what remains
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### Step 2 — Determine current phase
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
The pipeline phases are:
|
|
34
34
|
|
|
35
|
-
1. **
|
|
36
|
-
2. **
|
|
37
|
-
3. **Approach
|
|
38
|
-
4. **
|
|
39
|
-
5. **Review** (Code Reviewer) —
|
|
40
|
-
6. **QA** —
|
|
35
|
+
1. **Evaluation** (Advisor) — go/no-go
|
|
36
|
+
2. **Specification** (Product Owner) — acceptance criteria
|
|
37
|
+
3. **Technical Approach** (Tech Lead) — implementation plan
|
|
38
|
+
4. **Implementation** (Developer) — code and tests
|
|
39
|
+
5. **Review** (Code Reviewer) — quality review
|
|
40
|
+
6. **QA** — functional validation
|
|
41
41
|
|
|
42
|
-
###
|
|
42
|
+
### Step 3 — Present flow state
|
|
43
43
|
|
|
44
44
|
```text
|
|
45
|
-
Dev Flow — [
|
|
45
|
+
Dev Flow — [feature name]
|
|
46
46
|
|
|
47
|
-
[x]
|
|
48
|
-
[x]
|
|
49
|
-
[ ]
|
|
50
|
-
[ ]
|
|
51
|
-
[ ]
|
|
52
|
-
[ ]
|
|
47
|
+
[x] Phase 1 — Evaluation (completed)
|
|
48
|
+
[x] Phase 2 — Specification (completed)
|
|
49
|
+
[ ] Phase 3 — Technical Approach (pending) <-- you are here
|
|
50
|
+
[ ] Phase 4 — Implementation
|
|
51
|
+
[ ] Phase 5 — Review
|
|
52
|
+
[ ] Phase 6 — QA
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Next step: Run /build-feature to continue from Phase 3.
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
If there is no feature in progress, report that there is no active pipeline and suggest `/new-feature` or `/build-feature`.
|
|
58
58
|
|
|
59
59
|
## Example Session
|
|
60
60
|
|
|
@@ -1,116 +1,116 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: guild-specialize
|
|
3
|
-
description: "
|
|
3
|
+
description: "Enriches CLAUDE.md by exploring the project and specializes agents to the real stack"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Guild Specialize
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Explores the user's real project and enriches the entire Guild configuration with concrete information about the detected stack, architecture, and conventions.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
This skill runs once after `guild init`. It transforms generic placeholders into real project information.
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## When to use
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
15
|
+
- Immediately after running `guild init`
|
|
16
|
+
- When a new stack is added to the project (new database, new framework)
|
|
17
|
+
- When the project structure has changed significantly
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## Process
|
|
20
20
|
|
|
21
|
-
###
|
|
21
|
+
### Step 1 — Read base context
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Read the Guild configuration files:
|
|
24
24
|
|
|
25
|
-
- `CLAUDE.md` —
|
|
26
|
-
- `PROJECT.md` —
|
|
27
|
-
- `SESSION.md` —
|
|
25
|
+
- `CLAUDE.md` — current instructions (contains `[PENDING: guild-specialize]` placeholders)
|
|
26
|
+
- `PROJECT.md` — identity and stack declared during init
|
|
27
|
+
- `SESSION.md` — current session state
|
|
28
28
|
|
|
29
|
-
###
|
|
29
|
+
### Step 2 — Explore the real project
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Investigate the real project structure looking for:
|
|
32
32
|
|
|
33
|
-
**
|
|
33
|
+
**Dependencies and versions:**
|
|
34
34
|
|
|
35
35
|
- `package.json` (Node.js/frontend)
|
|
36
|
-
- `pom.xml`
|
|
37
|
-
- `requirements.txt`
|
|
36
|
+
- `pom.xml` or `build.gradle` (Java)
|
|
37
|
+
- `requirements.txt` or `pyproject.toml` (Python)
|
|
38
38
|
- `Gemfile` (Ruby)
|
|
39
39
|
- `go.mod` (Go)
|
|
40
40
|
- `Cargo.toml` (Rust)
|
|
41
41
|
|
|
42
|
-
**
|
|
42
|
+
**Architecture and structure:**
|
|
43
43
|
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
44
|
+
- Folders `src/`, `app/`, `lib/`, `pkg/`, `internal/`
|
|
45
|
+
- Organization pattern: by layers, by features, by domain
|
|
46
|
+
- Project entry points
|
|
47
47
|
|
|
48
|
-
**
|
|
48
|
+
**Configuration and conventions:**
|
|
49
49
|
|
|
50
50
|
- `tsconfig.json`, `eslint.config.*`, `.prettierrc`
|
|
51
|
-
- `.env.example`, `.env.local` (variables
|
|
51
|
+
- `.env.example`, `.env.local` (environment variables — do NOT read real `.env`)
|
|
52
52
|
- `Dockerfile`, `docker-compose.yml`
|
|
53
53
|
- CI/CD: `.github/workflows/`, `.gitlab-ci.yml`
|
|
54
54
|
|
|
55
|
-
**
|
|
55
|
+
**Database and migrations:**
|
|
56
56
|
|
|
57
|
-
-
|
|
58
|
-
- ORM
|
|
59
|
-
-
|
|
57
|
+
- Folder `migrations/`, `db/`, `prisma/`, `drizzle/`
|
|
58
|
+
- Configured ORM or query builder
|
|
59
|
+
- Existing schema
|
|
60
60
|
|
|
61
|
-
**
|
|
61
|
+
**Existing documentation:**
|
|
62
62
|
|
|
63
|
-
- `README.md` —
|
|
64
|
-
-
|
|
63
|
+
- `README.md` — project overview
|
|
64
|
+
- Internal documentation in `docs/`
|
|
65
65
|
|
|
66
|
-
###
|
|
66
|
+
### Step 3 — Enrich CLAUDE.md
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
Replace all `[PENDING: guild-specialize]` placeholders in CLAUDE.md with real information:
|
|
69
69
|
|
|
70
|
-
- **Stack
|
|
71
|
-
- **
|
|
72
|
-
- **
|
|
73
|
-
- **
|
|
74
|
-
- **
|
|
75
|
-
- **
|
|
76
|
-
- **
|
|
70
|
+
- **Stack with exact versions**: extracted from dependency files
|
|
71
|
+
- **Folder structure explained**: what each main folder does
|
|
72
|
+
- **Detected code conventions**: linter, formatter, import style
|
|
73
|
+
- **Identified architecture patterns**: MVC, hexagonal, modular, etc.
|
|
74
|
+
- **Known environment variables**: listed from `.env.example`
|
|
75
|
+
- **Visible limitations and technical debt**: outdated dependencies, TODOs found
|
|
76
|
+
- **Useful project commands**: detected npm/make/cargo scripts
|
|
77
77
|
|
|
78
|
-
###
|
|
78
|
+
### Step 4 — Specialize agents
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
For each agent in `.claude/agents/*.md`, add project-specific context:
|
|
81
81
|
|
|
82
|
-
- **advisor.md**:
|
|
83
|
-
- **tech-lead.md**: stack
|
|
84
|
-
- **product-owner.md**:
|
|
85
|
-
- **developer.md**:
|
|
86
|
-
- **code-reviewer.md**:
|
|
87
|
-
- **qa.md**: framework
|
|
88
|
-
- **bugfix.md**: stack
|
|
89
|
-
- **db-migration.md**: ORM,
|
|
82
|
+
- **advisor.md**: real project domain, target users
|
|
83
|
+
- **tech-lead.md**: specific stack, detected patterns, architecture decisions
|
|
84
|
+
- **product-owner.md**: existing functionality, visible backlog
|
|
85
|
+
- **developer.md**: code conventions, main framework, file structure
|
|
86
|
+
- **code-reviewer.md**: lint rules, project patterns, anti-patterns to watch
|
|
87
|
+
- **qa.md**: testing framework, commands to run tests, current coverage
|
|
88
|
+
- **bugfix.md**: debugging stack, logs, available tools
|
|
89
|
+
- **db-migration.md**: ORM, migration tool, current schema (if applicable)
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
Use the `Task` tool to invoke each agent by reading their `.claude/agents/[name].md` if you need a specialized perspective to enrich their configuration.
|
|
92
92
|
|
|
93
|
-
###
|
|
93
|
+
### Step 5 — Confirm
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
Present a summary of what was detected:
|
|
96
96
|
|
|
97
97
|
```text
|
|
98
|
-
Guild v1
|
|
98
|
+
Guild v1 specialized for [project-name]
|
|
99
99
|
|
|
100
|
-
|
|
101
|
-
- [
|
|
100
|
+
Detected stack:
|
|
101
|
+
- [list of technologies with versions]
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
- [
|
|
105
|
-
- [
|
|
103
|
+
Architecture:
|
|
104
|
+
- [identified pattern]
|
|
105
|
+
- [main structure]
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
- [
|
|
107
|
+
Updated agents:
|
|
108
|
+
- [list of agents with their applied specialization]
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
Run /status to see the full state.
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
###
|
|
113
|
+
### Step 6 — Commit enrichment immediately
|
|
114
114
|
|
|
115
115
|
**CRITICAL:** After enriching CLAUDE.md and agent files, commit the changes immediately as their own atomic commit. Do NOT leave them as unstaged changes — they are vulnerable to `git stash` and other operations.
|
|
116
116
|
|
|
@@ -146,11 +146,11 @@ Agents updated:
|
|
|
146
146
|
Run /status to see the full state.
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
##
|
|
149
|
+
## Important Notes
|
|
150
150
|
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
151
|
+
- NEVER read real `.env` files — only `.env.example` or `.env.local`
|
|
152
|
+
- If you cannot detect something with certainty, ask the user instead of assuming
|
|
153
|
+
- Prioritize accuracy over completeness — it is better to say "not detected" than to fabricate
|
|
154
|
+
- Agents should be specialized to the real stack, not generic
|
|
155
155
|
- NEVER use `git stash` in automated pipelines — use `wip:` commits instead
|
|
156
156
|
- CLAUDE.md changes must always be committed separately from feature code
|
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: new-feature
|
|
3
|
-
description: "
|
|
3
|
+
description: "Creates branch and scaffold for a new feature"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# New Feature
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Prepares the environment for working on a new feature: creates a branch, updates SESSION.md, and optionally creates a GitHub Issue.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
13
|
+
- When starting a new feature before writing code
|
|
14
|
+
- When you want to record the feature context in SESSION.md
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Usage
|
|
17
17
|
|
|
18
|
-
`/new-feature [
|
|
18
|
+
`/new-feature [feature-name]`
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Process
|
|
21
21
|
|
|
22
|
-
###
|
|
22
|
+
### Step 1 — Get name
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
If the user did not provide a name, ask for:
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
26
|
+
- Short name for the feature (will be used in the branch name)
|
|
27
|
+
- Brief description (1-2 sentences)
|
|
28
28
|
|
|
29
|
-
###
|
|
29
|
+
### Step 2 — Create branch with worktree isolation
|
|
30
30
|
|
|
31
31
|
When running in parallel with other agents, use git worktrees for isolation. When running standalone, a simple branch is sufficient.
|
|
32
32
|
|
|
33
33
|
**For parallel execution (multiple build-features at once):**
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
git worktree add .claude/worktrees/feature-[
|
|
36
|
+
git worktree add .claude/worktrees/feature-[name] -b feature/[feature-name] develop
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
All subsequent operations should use `.claude/worktrees/feature-[
|
|
39
|
+
All subsequent operations should use `.claude/worktrees/feature-[name]` as the working directory.
|
|
40
40
|
|
|
41
41
|
**For standalone execution:**
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
git checkout -b feature/[
|
|
44
|
+
git checkout -b feature/[feature-name]
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
If the branch already exists, ask whether to switch to it or create a new one.
|
|
48
48
|
|
|
49
|
-
**Cleanup:** At skill exit, if using worktrees, the caller is responsible for cleanup via `git worktree remove .claude/worktrees/feature-[
|
|
49
|
+
**Cleanup:** At skill exit, if using worktrees, the caller is responsible for cleanup via `git worktree remove .claude/worktrees/feature-[name]` after the PR is merged.
|
|
50
50
|
|
|
51
|
-
###
|
|
51
|
+
### Step 3 — Update SESSION.md
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Update SESSION.md with the new feature context:
|
|
54
54
|
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
55
|
+
- **Date:** current date
|
|
56
|
+
- **Task in progress:** feature name
|
|
57
|
+
- **State:** Feature started — pending implementation
|
|
58
58
|
|
|
59
59
|
## Example Session
|
|
60
60
|
|
|
@@ -68,19 +68,19 @@ GitHub Issue #42 created.
|
|
|
68
68
|
Next: Run /build-feature to implement.
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
###
|
|
71
|
+
### Step 4 — GitHub Issue (optional)
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
If the project has GitHub integration configured in PROJECT.md:
|
|
74
74
|
|
|
75
|
-
1.
|
|
76
|
-
2.
|
|
77
|
-
3.
|
|
75
|
+
1. Ask whether to create a GitHub Issue for the feature
|
|
76
|
+
2. If accepted, create the issue with `gh issue create`
|
|
77
|
+
3. Record the issue URL in SESSION.md
|
|
78
78
|
|
|
79
|
-
###
|
|
79
|
+
### Step 5 — Confirm
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
Confirm to the user:
|
|
82
82
|
|
|
83
|
-
- Branch
|
|
84
|
-
- SESSION.md
|
|
85
|
-
- GitHub Issue
|
|
86
|
-
-
|
|
83
|
+
- Branch created: `feature/[name]`
|
|
84
|
+
- SESSION.md updated
|
|
85
|
+
- GitHub Issue created (if applicable)
|
|
86
|
+
- Suggest: "Run /build-feature to implement the full feature"
|
|
@@ -1,70 +1,70 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qa-cycle
|
|
3
|
-
description: "
|
|
3
|
+
description: "QA + bugfix cycle until it passes"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# QA Cycle
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Runs a QA validation cycle followed by bugfix until all criteria pass clean. Useful for validating implementations without the full build-feature pipeline.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- After implementing changes that need validation
|
|
14
|
+
- To verify that a bug fix did not introduce regressions
|
|
15
|
+
- As a final cycle before creating a PR
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Usage
|
|
18
18
|
|
|
19
19
|
`/qa-cycle`
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Process
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### Step 1 — Automated verification (mandatory)
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Before invoking the QA agent, run the project verification commands. The specific commands are in the "CLI commands" section of CLAUDE.md:
|
|
26
26
|
|
|
27
|
-
1.
|
|
28
|
-
2.
|
|
29
|
-
3.
|
|
27
|
+
1. Run project tests (e.g., `npm test`) — record result and output
|
|
28
|
+
2. Run project lint (e.g., `npm run lint`) — record result and output
|
|
29
|
+
3. If any fail, this becomes input for the QA report as an automatic Blocker bug
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### Step 2 — QA Validation
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Invoke the QA agent using Task tool:
|
|
34
34
|
|
|
35
|
-
1.
|
|
36
|
-
2.
|
|
37
|
-
3.
|
|
38
|
-
4.
|
|
39
|
-
5.
|
|
40
|
-
6.
|
|
41
|
-
7.
|
|
35
|
+
1. Read `.claude/agents/qa.md` to assume the QA role
|
|
36
|
+
2. Read CLAUDE.md and SESSION.md for context
|
|
37
|
+
3. Receive the test and lint results from Step 1
|
|
38
|
+
4. If tests or lint failed, include them as Blocker bugs in the report
|
|
39
|
+
5. Review the acceptance criteria for the current task (if they exist in SESSION.md)
|
|
40
|
+
6. Validate edge cases and error scenarios
|
|
41
|
+
7. Report results
|
|
42
42
|
|
|
43
|
-
###
|
|
43
|
+
### Step 3 — Bugfix (if there are bugs)
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
If QA reports bugs (including test/lint failures), invoke the Bugfix agent using Task tool:
|
|
46
46
|
|
|
47
|
-
1.
|
|
48
|
-
2.
|
|
49
|
-
3.
|
|
50
|
-
4.
|
|
51
|
-
5.
|
|
52
|
-
6.
|
|
47
|
+
1. Read `.claude/agents/bugfix.md` to assume the Bugfix role
|
|
48
|
+
2. Receive the QA bug report as input
|
|
49
|
+
3. Diagnose the root cause of each bug
|
|
50
|
+
4. Implement the minimal fix
|
|
51
|
+
5. Verify that the fix resolves the issue
|
|
52
|
+
6. Run tests and lint to confirm no regressions were introduced
|
|
53
53
|
|
|
54
|
-
###
|
|
54
|
+
### Step 4 — Re-validation
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
Return to Step 1 (automated verification) to re-validate after the bugfix.
|
|
57
|
+
Maximum 3 verification-QA-bugfix cycles to prevent infinite loops.
|
|
58
58
|
|
|
59
|
-
###
|
|
59
|
+
### Step 5 — Final result
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
Present the result:
|
|
62
62
|
|
|
63
|
-
- **
|
|
64
|
-
- **
|
|
65
|
-
- **
|
|
63
|
+
- **Approved**: All criteria pass, no pending bugs
|
|
64
|
+
- **With warnings**: Passes but there are minor warnings
|
|
65
|
+
- **Rejected**: There are critical bugs that could not be resolved — escalate to the Tech Lead
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
Update SESSION.md with the QA cycle result.
|
|
68
68
|
|
|
69
69
|
## Example Session
|
|
70
70
|
|