guild-agents 0.2.6 → 0.2.8
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 +45 -35
- package/bin/guild.js +9 -7
- package/package.json +5 -6
- 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 +38 -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 +69 -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 +34 -34
- package/src/utils/files.js +8 -8
- package/src/utils/generators.js +47 -47
- package/src/utils/github.js +20 -20
- package/src/commands/__tests__/doctor.test.js +0 -85
- package/src/commands/__tests__/list.test.js +0 -82
- package/src/commands/__tests__/new-agent.test.js +0 -40
- package/src/commands/__tests__/status.test.js +0 -35
|
@@ -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
|
|
|
@@ -1,64 +1,64 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: review
|
|
3
|
-
description: "
|
|
3
|
+
description: "Standalone code review on the current diff"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Review
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Runs an independent code review on the current project changes. Invokes the Code Reviewer agent to analyze quality, patterns, security, and technical debt.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- Before creating a PR
|
|
14
|
+
- To review your own changes before requesting review from others
|
|
15
|
+
- When you want a second opinion on the code you wrote
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Usage
|
|
18
18
|
|
|
19
19
|
`/review`
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Process
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### Step 1 — Get diff and verification state
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Get the current changes:
|
|
26
26
|
|
|
27
|
-
1.
|
|
28
|
-
2.
|
|
29
|
-
3.
|
|
27
|
+
1. First try `git diff --staged` (staged changes)
|
|
28
|
+
2. If there are no staged changes, use `git diff` (unstaged changes)
|
|
29
|
+
3. If there are no changes at all, report that there is nothing to review
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Run automated verification to give context to the reviewer:
|
|
32
32
|
|
|
33
|
-
1.
|
|
34
|
-
2.
|
|
35
|
-
3.
|
|
33
|
+
1. Run project tests (e.g., `npm test`) — capture result
|
|
34
|
+
2. Run project lint (e.g., `npm run lint`) — capture result
|
|
35
|
+
3. Include both results as context for the Code Reviewer
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Note: The Code Reviewer does not have access to Bash (only Read, Glob, Grep), so tests and lint are run here before invoking the reviewer.
|
|
38
38
|
|
|
39
|
-
###
|
|
39
|
+
### Step 2 — Invoke Code Reviewer
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Invoke the Code Reviewer agent using Task tool:
|
|
42
42
|
|
|
43
|
-
1.
|
|
44
|
-
2.
|
|
45
|
-
3.
|
|
46
|
-
4.
|
|
47
|
-
5.
|
|
48
|
-
6.
|
|
49
|
-
- **Blocker**:
|
|
50
|
-
- **Warning**:
|
|
51
|
-
- **Suggestion**:
|
|
43
|
+
1. Read `.claude/agents/code-reviewer.md` to assume the role
|
|
44
|
+
2. Read CLAUDE.md to understand the project conventions
|
|
45
|
+
3. Receive the full diff + test and lint results from Step 1
|
|
46
|
+
4. If tests or lint failed, this is automatically a Blocker finding
|
|
47
|
+
5. Review the full diff
|
|
48
|
+
6. Classify each finding by severity:
|
|
49
|
+
- **Blocker**: Must be fixed before merge
|
|
50
|
+
- **Warning**: Should be fixed, introduces technical debt
|
|
51
|
+
- **Suggestion**: Optional improvement
|
|
52
52
|
|
|
53
|
-
###
|
|
53
|
+
### Step 3 — Present findings
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Present the report organized by severity:
|
|
56
56
|
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
57
|
+
- Total count of findings by type
|
|
58
|
+
- Detail of each finding: file, description, suggested fix
|
|
59
|
+
- Final verdict: Approved / Approved with warnings / Blocked
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
If there are blockers, suggest fixing them and running `/review` again.
|
|
62
62
|
|
|
63
63
|
## Example Session
|
|
64
64
|
|
|
@@ -1,55 +1,55 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: session-end
|
|
3
|
-
description: "
|
|
3
|
+
description: "Saves current state to SESSION.md"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Session End
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Saves the current work state to SESSION.md so it can be resumed in the next session. Run this skill before closing your work session.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
13
|
+
- Before closing the work session
|
|
14
|
+
- When you need to pause and want to save the context
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Usage
|
|
17
17
|
|
|
18
18
|
`/session-end`
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Process
|
|
21
21
|
|
|
22
|
-
###
|
|
22
|
+
### Step 1 — Gather current state
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Analyze the current work state:
|
|
25
25
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
26
|
+
- What task was in progress
|
|
27
|
+
- Which pipeline phase it is in (if applicable)
|
|
28
|
+
- What files were modified (via `git status`)
|
|
29
|
+
- What commits were made in this session
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### Step 2 — Update SESSION.md
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Update SESSION.md with the following information:
|
|
34
34
|
|
|
35
|
-
- **
|
|
36
|
-
- **
|
|
37
|
-
- **GitHub Issue:**
|
|
38
|
-
- **
|
|
39
|
-
- **
|
|
35
|
+
- **Date:** current date
|
|
36
|
+
- **Task in progress:** task name or "none"
|
|
37
|
+
- **GitHub Issue:** associated issue URL (if it exists)
|
|
38
|
+
- **Active agent:** last agent used or "none"
|
|
39
|
+
- **State:** concrete description of where the work left off
|
|
40
40
|
|
|
41
|
-
**
|
|
41
|
+
**Relevant context:**
|
|
42
42
|
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
43
|
+
- Decisions made in this session
|
|
44
|
+
- Problems encountered and how they were resolved
|
|
45
|
+
- Important information for resuming
|
|
46
46
|
|
|
47
|
-
**
|
|
47
|
+
**Next steps:**
|
|
48
48
|
|
|
49
|
-
-
|
|
50
|
-
-
|
|
49
|
+
- The 2-3 most important concrete actions when resuming
|
|
50
|
+
- Suggested skill to continue (e.g., "run /build-feature to continue from Phase 4")
|
|
51
51
|
|
|
52
|
-
###
|
|
52
|
+
### Step 3 — Commit WIP if uncommitted work exists
|
|
53
53
|
|
|
54
54
|
If there are uncommitted changes, create a checkpoint commit:
|
|
55
55
|
|
|
@@ -74,11 +74,11 @@ WIP committed: wip: session paused — user-preferences phase 4
|
|
|
74
74
|
SESSION.md updated. Safe to close.
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
###
|
|
77
|
+
### Step 4 — Confirm
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
Confirm to the user:
|
|
80
80
|
|
|
81
|
-
- SESSION.md
|
|
81
|
+
- SESSION.md updated with the current state
|
|
82
82
|
- WIP committed (if applicable)
|
|
83
|
-
-
|
|
84
|
-
-
|
|
83
|
+
- Next steps recorded
|
|
84
|
+
- You can safely close the session
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: session-start
|
|
3
|
-
description: "
|
|
3
|
+
description: "Loads context and resumes work from SESSION.md"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Session Start
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Loads the project context and resumes work from where it was left off in the previous session. This is the first skill you should run when starting a work session.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
13
|
+
- At the start of each work session with the project
|
|
14
|
+
- When you want to resume context after a pause
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Usage
|
|
17
17
|
|
|
18
18
|
`/session-start`
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Process
|
|
21
21
|
|
|
22
|
-
###
|
|
22
|
+
### Step 1 — Load context
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
Read the Guild state files:
|
|
25
25
|
|
|
26
|
-
- `CLAUDE.md` —
|
|
27
|
-
- `SESSION.md` —
|
|
28
|
-
- `PROJECT.md` —
|
|
26
|
+
- `CLAUDE.md` — project instructions, conventions, and rules
|
|
27
|
+
- `SESSION.md` — last session state, task in progress, next steps
|
|
28
|
+
- `PROJECT.md` — project identity, stack, configured agents
|
|
29
29
|
|
|
30
|
-
###
|
|
30
|
+
### Step 2 — Detect resumable work
|
|
31
31
|
|
|
32
32
|
Check for `wip:` checkpoint commits on active branches:
|
|
33
33
|
|
|
@@ -39,35 +39,35 @@ done
|
|
|
39
39
|
|
|
40
40
|
If `wip:` commits are found, present them to the user with the phase they were in when interrupted.
|
|
41
41
|
|
|
42
|
-
###
|
|
42
|
+
### Step 3 — Present state
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
Show a summary of the previous session:
|
|
45
45
|
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
46
|
+
- Date of the last session
|
|
47
|
+
- Task in progress (if any)
|
|
48
|
+
- State where the work left off
|
|
49
|
+
- Decisions made previously
|
|
50
|
+
- Recorded next steps
|
|
51
51
|
- **Resumable pipelines** (if wip: commits detected)
|
|
52
52
|
|
|
53
|
-
###
|
|
53
|
+
### Step 4 — Suggest how to continue
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
If there is a task in progress:
|
|
56
56
|
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
57
|
+
- Show the task state
|
|
58
|
+
- Suggest continuing with the appropriate skill (e.g., `/build-feature` if in implementation)
|
|
59
|
+
- Show the next steps recorded in SESSION.md
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
If there is no task in progress, suggest options:
|
|
62
62
|
|
|
63
|
-
- `/build-feature [
|
|
64
|
-
- `/new-feature [
|
|
65
|
-
- `/status` —
|
|
66
|
-
- `/council [
|
|
63
|
+
- `/build-feature [description]` — to implement a new feature
|
|
64
|
+
- `/new-feature [name]` — to prepare the environment for a feature
|
|
65
|
+
- `/status` — to see the general project state
|
|
66
|
+
- `/council [question]` — to debate an important decision
|
|
67
67
|
|
|
68
|
-
###
|
|
68
|
+
### Step 5 — Update session
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
Update SESSION.md with the current date to record that the session has started.
|
|
71
71
|
|
|
72
72
|
## Example Session
|
|
73
73
|
|
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: status
|
|
3
|
-
description: "
|
|
3
|
+
description: "Shows current project and session state"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Status
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Shows a complete summary of the current project state, the active session, and the available Guild resources.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## When to use
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
13
|
+
- At the start of a session to get oriented
|
|
14
|
+
- To verify that Guild is correctly configured
|
|
15
|
+
- To see which agents and skills are available
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Usage
|
|
18
18
|
|
|
19
19
|
`/status`
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Process
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### Step 1 — Read state files
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Read the Guild configuration files:
|
|
26
26
|
|
|
27
|
-
- `CLAUDE.md` —
|
|
28
|
-
- `PROJECT.md` —
|
|
29
|
-
- `SESSION.md` —
|
|
27
|
+
- `CLAUDE.md` — project instructions and conventions
|
|
28
|
+
- `PROJECT.md` — identity, stack, and configured agents
|
|
29
|
+
- `SESSION.md` — current session state
|
|
30
30
|
|
|
31
|
-
###
|
|
31
|
+
### Step 2 — Present state
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Show the summary in the following format:
|
|
34
34
|
|
|
35
35
|
```text
|
|
36
|
-
Guild v1 — [
|
|
36
|
+
Guild v1 — [project name]
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
38
|
+
Current session:
|
|
39
|
+
- Date: [date from SESSION.md]
|
|
40
|
+
- Task in progress: [task or "none"]
|
|
41
|
+
- State: [current state]
|
|
42
42
|
|
|
43
43
|
Stack:
|
|
44
|
-
- [
|
|
44
|
+
- [technologies listed in PROJECT.md]
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
- [
|
|
46
|
+
Available agents:
|
|
47
|
+
- [list of .md files in .claude/agents/]
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
- [
|
|
49
|
+
Available skills:
|
|
50
|
+
- [list of directories in .claude/skills/]
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
- [
|
|
52
|
+
Next steps:
|
|
53
|
+
- [extracted from SESSION.md]
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
###
|
|
56
|
+
### Step 3 — Suggest actions
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
If there is no task in progress, suggest:
|
|
59
59
|
|
|
60
|
-
- `/build-feature`
|
|
61
|
-
- `/new-feature`
|
|
62
|
-
- `/council`
|
|
60
|
+
- `/build-feature` to implement something new
|
|
61
|
+
- `/new-feature` to prepare the environment for a feature
|
|
62
|
+
- `/council` to debate a decision
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
If there is a task in progress, suggest continuing with the appropriate skill based on the state.
|
|
65
65
|
|
|
66
66
|
## Example Session
|
|
67
67
|
|
|
@@ -75,7 +75,7 @@ Session: 2026-02-23
|
|
|
75
75
|
Task: Implementing user preferences
|
|
76
76
|
State: Phase 4 — Developer implementing
|
|
77
77
|
|
|
78
|
-
Agents: advisor, product-owner, tech-lead, developer, code-reviewer, qa, bugfix, db-migration
|
|
78
|
+
Agents: advisor, product-owner, tech-lead, developer, code-reviewer, qa, bugfix, db-migration, platform-expert
|
|
79
79
|
Skills: guild-specialize, build-feature, new-feature, council, qa-cycle, review, dev-flow,
|
|
80
80
|
status, session-start, session-end
|
|
81
81
|
```
|
package/src/utils/files.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* files.js —
|
|
2
|
+
* files.js — File system utilities for Guild v1
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import { mkdirSync, copyFileSync, existsSync, readdirSync, readFileSync } from 'fs';
|
|
@@ -12,7 +12,7 @@ const AGENTS_DIR = join('.claude', 'agents');
|
|
|
12
12
|
const SKILLS_DIR = join('.claude', 'skills');
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Returns the names of the 9 v1 agents.
|
|
16
16
|
*/
|
|
17
17
|
export function getAgentNames() {
|
|
18
18
|
return [
|
|
@@ -29,7 +29,7 @@ export function getAgentNames() {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* Copies agent and skill templates to the user's project.
|
|
33
33
|
*/
|
|
34
34
|
export async function copyTemplates() {
|
|
35
35
|
mkdirSync(AGENTS_DIR, { recursive: true });
|
|
@@ -65,7 +65,7 @@ export async function copyTemplates() {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
68
|
+
* Reads the contents of PROJECT.md if it exists.
|
|
69
69
|
*/
|
|
70
70
|
export function readProjectMd() {
|
|
71
71
|
const path = 'PROJECT.md';
|
|
@@ -74,7 +74,7 @@ export function readProjectMd() {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
|
-
*
|
|
77
|
+
* Reads the contents of SESSION.md if it exists.
|
|
78
78
|
*/
|
|
79
79
|
export function readSessionMd() {
|
|
80
80
|
const path = 'SESSION.md';
|
|
@@ -83,9 +83,9 @@ export function readSessionMd() {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
86
|
+
* Resolves the Guild project root by walking up from startDir.
|
|
87
|
+
* Looks for .claude/ or PROJECT.md as markers of a Guild project.
|
|
88
|
+
* Returns the absolute path to the project or null if not found.
|
|
89
89
|
*/
|
|
90
90
|
export function resolveProjectRoot(startDir = process.cwd()) {
|
|
91
91
|
let dir = resolve(startDir);
|