@fro.bot/systematic 1.22.8 → 1.23.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/agents/research/best-practices-researcher.md +9 -3
- package/agents/research/framework-docs-researcher.md +2 -0
- package/agents/research/git-history-analyzer.md +9 -6
- package/agents/research/issue-intelligence-analyst.md +232 -0
- package/agents/research/repo-research-analyst.md +6 -10
- package/commands/.gitkeep +0 -0
- package/package.json +1 -1
- package/skills/agent-browser/SKILL.md +511 -169
- package/skills/agent-browser/references/authentication.md +303 -0
- package/skills/agent-browser/references/commands.md +266 -0
- package/skills/agent-browser/references/profiling.md +120 -0
- package/skills/agent-browser/references/proxy-support.md +194 -0
- package/skills/agent-browser/references/session-management.md +193 -0
- package/skills/agent-browser/references/snapshot-refs.md +194 -0
- package/skills/agent-browser/references/video-recording.md +173 -0
- package/skills/agent-browser/templates/authenticated-session.sh +105 -0
- package/skills/agent-browser/templates/capture-workflow.sh +69 -0
- package/skills/agent-browser/templates/form-automation.sh +62 -0
- package/skills/ce-brainstorm/SKILL.md +336 -0
- package/{commands/ce/compound.md → skills/ce-compound/SKILL.md} +106 -9
- package/skills/ce-compound-refresh/SKILL.md +528 -0
- package/skills/ce-ideate/SKILL.md +371 -0
- package/{commands/ce/plan.md → skills/ce-plan/SKILL.md} +73 -66
- package/skills/ce-plan-beta/SKILL.md +572 -0
- package/{commands/ce/review.md → skills/ce-review/SKILL.md} +53 -18
- package/{commands/ce/work.md → skills/ce-work/SKILL.md} +88 -63
- package/{commands/create-agent-skill.md → skills/create-agent-skill/SKILL.md} +1 -0
- package/skills/create-agent-skills/SKILL.md +9 -19
- package/{commands/deepen-plan.md → skills/deepen-plan/SKILL.md} +35 -36
- package/skills/deepen-plan-beta/SKILL.md +323 -0
- package/{commands/deploy-docs.md → skills/deploy-docs/SKILL.md} +26 -33
- package/skills/document-review/SKILL.md +14 -8
- package/{commands/generate_command.md → skills/generate_command/SKILL.md} +5 -5
- package/{commands/heal-skill.md → skills/heal-skill/SKILL.md} +1 -0
- package/skills/lfg/SKILL.md +37 -0
- package/{commands/report-bug.md → skills/report-bug/SKILL.md} +16 -15
- package/{commands/reproduce-bug.md → skills/reproduce-bug/SKILL.md} +10 -9
- package/{commands/resolve_todo_parallel.md → skills/resolve_todo_parallel/SKILL.md} +2 -1
- package/{commands/slfg.md → skills/slfg/SKILL.md} +8 -4
- package/{commands/test-browser.md → skills/test-browser/SKILL.md} +67 -13
- package/{commands/test-xcode.md → skills/test-xcode/SKILL.md} +4 -3
- package/{commands/triage.md → skills/triage/SKILL.md} +2 -1
- package/skills/workflows-brainstorm/SKILL.md +11 -0
- package/{commands/workflows/compound.md → skills/workflows-compound/SKILL.md} +2 -2
- package/{commands/workflows/plan.md → skills/workflows-plan/SKILL.md} +2 -2
- package/{commands/workflows/review.md → skills/workflows-review/SKILL.md} +2 -2
- package/{commands/workflows/work.md → skills/workflows-work/SKILL.md} +2 -2
- package/agents/workflow/every-style-editor.md +0 -66
- package/commands/ce/brainstorm.md +0 -145
- package/commands/lfg.md +0 -20
- package/commands/workflows/brainstorm.md +0 -145
- package/skills/brainstorming/SKILL.md +0 -190
- package/skills/skill-creator/SKILL.md +0 -210
- package/skills/skill-creator/scripts/init_skill.py +0 -303
- package/skills/skill-creator/scripts/package_skill.py +0 -110
- package/skills/skill-creator/scripts/quick_validate.py +0 -65
- /package/{commands/agent-native-audit.md → skills/agent-native-audit/SKILL.md} +0 -0
- /package/{commands/changelog.md → skills/changelog/SKILL.md} +0 -0
- /package/{commands/feature-video.md → skills/feature-video/SKILL.md} +0 -0
- /package/{commands/resolve_parallel.md → skills/resolve_parallel/SKILL.md} +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: document-review
|
|
3
|
-
description: This skill should be used to refine
|
|
3
|
+
description: This skill should be used to refine requirements or plan documents before proceeding to the next workflow step. It applies when a requirements document or plan document exists and the user wants to improve it.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Document Review
|
|
7
7
|
|
|
8
|
-
Improve
|
|
8
|
+
Improve requirements or plan documents through structured review.
|
|
9
9
|
|
|
10
10
|
## Step 1: Get the Document
|
|
11
11
|
|
|
12
12
|
**If a document path is provided:** Read it, then proceed to Step 2.
|
|
13
13
|
|
|
14
|
-
**If no document is specified:** Ask which document to review, or look for the most recent
|
|
14
|
+
**If no document is specified:** Ask which document to review, or look for the most recent requirements/plan in `docs/brainstorms/` or `docs/plans/`.
|
|
15
15
|
|
|
16
16
|
## Step 2: Assess
|
|
17
17
|
|
|
@@ -32,11 +32,12 @@ Score the document against these criteria:
|
|
|
32
32
|
| Criterion | What to Check |
|
|
33
33
|
|-----------|---------------|
|
|
34
34
|
| **Clarity** | Problem statement is clear, no vague language ("probably," "consider," "try to") |
|
|
35
|
-
| **Completeness** | Required sections present, constraints stated,
|
|
36
|
-
| **Specificity** | Concrete enough for next step (
|
|
37
|
-
| **
|
|
35
|
+
| **Completeness** | Required sections present, constraints stated, and outstanding questions clearly marked as blocking or deferred |
|
|
36
|
+
| **Specificity** | Concrete enough for next step (requirements → can plan, plan → can implement) |
|
|
37
|
+
| **Appropriate Level** | Requirements doc stays at behavior/scope level and does not drift into implementation unless the document is inherently technical |
|
|
38
|
+
| **YAGNI** | Avoid speculative complexity whose carrying cost outweighs its value; keep low-cost, meaningful polish when it is easy to maintain |
|
|
38
39
|
|
|
39
|
-
If invoked within a workflow (after `/
|
|
40
|
+
If invoked within a workflow (after `/ce:brainstorm` or `/ce:plan`), also check:
|
|
40
41
|
- **User intent fidelity** — Document reflects what was discussed, assumptions validated
|
|
41
42
|
|
|
42
43
|
## Step 4: Identify the Critical Improvement
|
|
@@ -56,7 +57,7 @@ Present your findings, then:
|
|
|
56
57
|
Simplification is purposeful removal of unnecessary complexity, not shortening for its own sake.
|
|
57
58
|
|
|
58
59
|
**Simplify when:**
|
|
59
|
-
- Content serves hypothetical future needs
|
|
60
|
+
- Content serves hypothetical future needs without enough current value to justify its carrying cost
|
|
60
61
|
- Sections repeat information already covered elsewhere
|
|
61
62
|
- Detail exceeds what's needed to take the next step
|
|
62
63
|
- Abstractions or structure add overhead without clarity
|
|
@@ -65,6 +66,10 @@ Simplification is purposeful removal of unnecessary complexity, not shortening f
|
|
|
65
66
|
- Constraints or edge cases that affect implementation
|
|
66
67
|
- Rationale that explains why alternatives were rejected
|
|
67
68
|
- Open questions that need resolution
|
|
69
|
+
- Deferred technical or research questions that are intentionally carried forward to the next stage
|
|
70
|
+
|
|
71
|
+
**Also remove when inappropriate:**
|
|
72
|
+
- Library choices, file structures, endpoints, schemas, or other implementation details that do not belong in a non-technical requirements document
|
|
68
73
|
|
|
69
74
|
## Step 6: Offer Next Action
|
|
70
75
|
|
|
@@ -85,3 +90,4 @@ Return control to the caller (workflow or user) after selection.
|
|
|
85
90
|
- Do not add new sections or requirements the user didn't discuss
|
|
86
91
|
- Do not over-engineer or add complexity
|
|
87
92
|
- Do not create separate review files or add metadata sections
|
|
93
|
+
|
|
@@ -7,7 +7,7 @@ disable-model-invocation: true
|
|
|
7
7
|
|
|
8
8
|
# Create a Custom OpenCode Command
|
|
9
9
|
|
|
10
|
-
Create a new
|
|
10
|
+
Create a new skill in `.opencode/skills/` for the requested task.
|
|
11
11
|
|
|
12
12
|
## Goal
|
|
13
13
|
|
|
@@ -114,7 +114,7 @@ Implement #$ARGUMENTS following these steps:
|
|
|
114
114
|
3. Implement
|
|
115
115
|
- Follow existing code patterns (reference specific files)
|
|
116
116
|
- Write tests first if doing TDD
|
|
117
|
-
- Ensure code follows
|
|
117
|
+
- Ensure code follows CLAUDE.md conventions
|
|
118
118
|
|
|
119
119
|
4. Verify
|
|
120
120
|
- Run tests: `bin/rails test`
|
|
@@ -128,10 +128,10 @@ Implement #$ARGUMENTS following these steps:
|
|
|
128
128
|
|
|
129
129
|
## Creating the Command File
|
|
130
130
|
|
|
131
|
-
1. **Create the
|
|
131
|
+
1. **Create the directory** at `.opencode/skills/[name]/SKILL.md`
|
|
132
132
|
2. **Start with YAML frontmatter** (see section above)
|
|
133
|
-
3. **Structure the
|
|
134
|
-
4. **Test the
|
|
133
|
+
3. **Structure the skill** using the template above
|
|
134
|
+
4. **Test the skill** by using it with appropriate arguments
|
|
135
135
|
|
|
136
136
|
## Command File Template
|
|
137
137
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lfg
|
|
3
|
+
description: Full autonomous engineering workflow
|
|
4
|
+
argument-hint: '[feature description]'
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
CRITICAL: You MUST execute every step below IN ORDER. Do NOT skip any required step. Do NOT jump ahead to coding or implementation. The plan phase (step 2, and step 3 when warranted) MUST be completed and verified BEFORE any work begins. Violating this order produces bad output.
|
|
9
|
+
|
|
10
|
+
1. **Optional:** If the `ralph-wiggum` skill is available, run `/ralph-wiggum:ralph-loop "finish all slash commands" --completion-promise "DONE"`. If not available or it fails, skip and continue to step 2 immediately.
|
|
11
|
+
|
|
12
|
+
2. `/systematic:ce-plan $ARGUMENTS`
|
|
13
|
+
|
|
14
|
+
GATE: STOP. Verify that the `ce:plan` workflow produced a plan file in `docs/plans/`. If no plan file was created, run `/systematic:ce-plan $ARGUMENTS` again. Do NOT proceed to step 3 until a written plan exists.
|
|
15
|
+
|
|
16
|
+
3. **Conditionally** run `/systematic:deepen-plan`
|
|
17
|
+
|
|
18
|
+
Run the `deepen-plan` workflow only if the plan is `Standard` or `Deep`, touches a high-risk area (auth, security, payments, migrations, external APIs, significant rollout concerns), or still has obvious confidence gaps in decisions, sequencing, system-wide impact, risks, or verification.
|
|
19
|
+
|
|
20
|
+
GATE: STOP. If you ran the `deepen-plan` workflow, confirm the plan was deepened or explicitly judged sufficiently grounded. If you skipped it, briefly note why and proceed to step 4.
|
|
21
|
+
|
|
22
|
+
4. `/systematic:ce-work`
|
|
23
|
+
|
|
24
|
+
GATE: STOP. Verify that implementation work was performed - files were created or modified beyond the plan. Do NOT proceed to step 5 if no code changes were made.
|
|
25
|
+
|
|
26
|
+
5. `/systematic:ce-review`
|
|
27
|
+
|
|
28
|
+
6. `/systematic:resolve_todo_parallel`
|
|
29
|
+
|
|
30
|
+
7. `/systematic:test-browser`
|
|
31
|
+
|
|
32
|
+
8. `/systematic:feature-video`
|
|
33
|
+
|
|
34
|
+
9. Output `<promise>DONE</promise>` when video is in PR
|
|
35
|
+
|
|
36
|
+
Start with step 2 now (or step 1 if ralph-wiggum is available). Remember: plan FIRST, then work. Never skip the plan.
|
|
37
|
+
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: report-bug
|
|
3
|
-
description: Report a bug in the
|
|
3
|
+
description: Report a bug in the compound-engineering plugin
|
|
4
4
|
argument-hint: '[optional: brief description of the bug]'
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Report a
|
|
8
|
+
# Report a Compounding Engineering Plugin Bug
|
|
9
9
|
|
|
10
|
-
Report bugs encountered while using the
|
|
10
|
+
Report bugs encountered while using the compound-engineering plugin. This command gathers structured information and creates a GitHub issue for the maintainer.
|
|
11
11
|
|
|
12
12
|
## Step 1: Gather Bug Information
|
|
13
13
|
|
|
@@ -42,10 +42,10 @@ Use the question tool to collect the following information:
|
|
|
42
42
|
Automatically gather:
|
|
43
43
|
```bash
|
|
44
44
|
# Get plugin version
|
|
45
|
-
cat ~/.opencode/plugins/installed_plugins.json 2>/dev/null | grep -A5 "
|
|
45
|
+
cat ~/.config/opencode/plugins/installed_plugins.json 2>/dev/null | grep -A5 "compound-engineering" | head -10 || echo "Plugin info not found"
|
|
46
46
|
|
|
47
47
|
# Get OpenCode version
|
|
48
|
-
|
|
48
|
+
claude --version 2>/dev/null || echo "Claude CLI version unknown"
|
|
49
49
|
|
|
50
50
|
# Get OS info
|
|
51
51
|
uname -a
|
|
@@ -64,7 +64,7 @@ Create a well-structured bug report with:
|
|
|
64
64
|
## Environment
|
|
65
65
|
|
|
66
66
|
- **Plugin Version:** [from installed_plugins.json]
|
|
67
|
-
- **OpenCode Version:** [from
|
|
67
|
+
- **OpenCode Version:** [from claude --version]
|
|
68
68
|
- **OS:** [from uname]
|
|
69
69
|
|
|
70
70
|
## What Happened
|
|
@@ -101,17 +101,17 @@ Use the GitHub CLI to create the issue:
|
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
103
|
gh issue create \
|
|
104
|
-
--repo
|
|
105
|
-
--title "[
|
|
104
|
+
--repo EveryInc/compound-engineering-plugin \
|
|
105
|
+
--title "[compound-engineering] Bug: [Brief description]" \
|
|
106
106
|
--body "[Formatted bug report from Step 3]" \
|
|
107
|
-
--label "bug,
|
|
107
|
+
--label "bug,compound-engineering"
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
**Note:** If labels don't exist, create without labels:
|
|
111
111
|
```bash
|
|
112
112
|
gh issue create \
|
|
113
|
-
--repo
|
|
114
|
-
--title "[
|
|
113
|
+
--repo EveryInc/compound-engineering-plugin \
|
|
114
|
+
--title "[compound-engineering] Bug: [Brief description]" \
|
|
115
115
|
--body "[Formatted bug report]"
|
|
116
116
|
```
|
|
117
117
|
|
|
@@ -120,17 +120,17 @@ gh issue create \
|
|
|
120
120
|
After the issue is created:
|
|
121
121
|
1. Display the issue URL to the user
|
|
122
122
|
2. Thank them for reporting the bug
|
|
123
|
-
3. Let them know the maintainer will be notified
|
|
123
|
+
3. Let them know the maintainer (Kieran Klaassen) will be notified
|
|
124
124
|
|
|
125
125
|
## Output Format
|
|
126
126
|
|
|
127
127
|
```
|
|
128
128
|
✅ Bug report submitted successfully!
|
|
129
129
|
|
|
130
|
-
Issue: https://github.com/
|
|
131
|
-
Title: [
|
|
130
|
+
Issue: https://github.com/EveryInc/compound-engineering-plugin/issues/[NUMBER]
|
|
131
|
+
Title: [compound-engineering] Bug: [description]
|
|
132
132
|
|
|
133
|
-
Thank you for helping improve the
|
|
133
|
+
Thank you for helping improve the compound-engineering plugin!
|
|
134
134
|
The maintainer will review your report and respond as soon as possible.
|
|
135
135
|
```
|
|
136
136
|
|
|
@@ -149,3 +149,4 @@ This command does NOT collect:
|
|
|
149
149
|
- File paths beyond basic OS info
|
|
150
150
|
|
|
151
151
|
Only technical information about the bug is included in the report.
|
|
152
|
+
|
|
@@ -13,8 +13,8 @@ Look at github issue #$ARGUMENTS and read the issue description and comments.
|
|
|
13
13
|
|
|
14
14
|
Run the following agents in parallel to investigate the bug:
|
|
15
15
|
|
|
16
|
-
1.
|
|
17
|
-
2.
|
|
16
|
+
1. task rails-console-explorer(issue_description)
|
|
17
|
+
2. task appsignal-log-investigator(issue_description)
|
|
18
18
|
|
|
19
19
|
Think about the places it could go wrong looking at the codebase. Look for logging output we can look for.
|
|
20
20
|
|
|
@@ -29,8 +29,8 @@ If the bug is UI-related or involves user flows, use Playwright to visually repr
|
|
|
29
29
|
### Step 1: Verify Server is Running
|
|
30
30
|
|
|
31
31
|
```
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
mcp__plugin_compound-engineering_pw__browser_navigate({ url: "http://localhost:3000" })
|
|
33
|
+
mcp__plugin_compound-engineering_pw__browser_snapshot({})
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
If server not running, inform user to start `bin/dev`.
|
|
@@ -40,8 +40,8 @@ If server not running, inform user to start `bin/dev`.
|
|
|
40
40
|
Based on the issue description, navigate to the relevant page:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
mcp__plugin_compound-engineering_pw__browser_navigate({ url: "http://localhost:3000/[affected_route]" })
|
|
44
|
+
mcp__plugin_compound-engineering_pw__browser_snapshot({})
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### Step 3: Capture Screenshots
|
|
@@ -49,7 +49,7 @@ mcp__playwright__browser_snapshot({})
|
|
|
49
49
|
Take screenshots at each step of reproducing the bug:
|
|
50
50
|
|
|
51
51
|
```
|
|
52
|
-
|
|
52
|
+
mcp__plugin_compound-engineering_pw__browser_take_screenshot({ filename: "bug-[issue]-step-1.png" })
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
### Step 4: Follow User Flow
|
|
@@ -65,7 +65,7 @@ Reproduce the exact steps from the issue:
|
|
|
65
65
|
|
|
66
66
|
3. **Check for console errors:**
|
|
67
67
|
```
|
|
68
|
-
|
|
68
|
+
mcp__plugin_compound-engineering_pw__browser_console_messages({ level: "error" })
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
### Step 5: Capture Bug State
|
|
@@ -77,7 +77,7 @@ When you reproduce the bug:
|
|
|
77
77
|
3. Document the exact steps that triggered it
|
|
78
78
|
|
|
79
79
|
```
|
|
80
|
-
|
|
80
|
+
mcp__plugin_compound-engineering_pw__browser_take_screenshot({ filename: "bug-[issue]-reproduced.png" })
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
## Phase 3: Document Findings
|
|
@@ -98,3 +98,4 @@ Add a comment to the issue with:
|
|
|
98
98
|
3. **Screenshots** - Visual evidence of the bug (upload captured screenshots)
|
|
99
99
|
4. **Relevant Code** - File paths and line numbers
|
|
100
100
|
5. **Suggested Fix** - If you have one
|
|
101
|
+
|
|
@@ -12,7 +12,7 @@ Resolve all TODO comments using parallel processing.
|
|
|
12
12
|
|
|
13
13
|
Get all unresolved TODOs from the /todos/\*.md directory
|
|
14
14
|
|
|
15
|
-
If any todo recommends deleting, removing, or gitignoring files in `docs/plans
|
|
15
|
+
If any todo recommends deleting, removing, or gitignoring files in `docs/brainstorms/`, `docs/plans/`, or `docs/solutions/`, skip it and mark it as `wont_fix`. These are compound-engineering pipeline artifacts that are intentional and permanent.
|
|
16
16
|
|
|
17
17
|
### 2. Plan
|
|
18
18
|
|
|
@@ -35,3 +35,4 @@ Always run all in parallel subagents/Tasks for each Todo item.
|
|
|
35
35
|
- Commit changes
|
|
36
36
|
- Remove the TODO from the file, and mark it as resolved.
|
|
37
37
|
- Push to remote
|
|
38
|
+
|
|
@@ -10,15 +10,18 @@ Swarm-enabled LFG. Run these steps in order, parallelizing where indicated. Do n
|
|
|
10
10
|
## Sequential Phase
|
|
11
11
|
|
|
12
12
|
1. **Optional:** If the `ralph-wiggum` skill is available, run `/ralph-wiggum:ralph-loop "finish all slash commands" --completion-promise "DONE"`. If not available or it fails, skip and continue to step 2 immediately.
|
|
13
|
-
2. `/
|
|
14
|
-
3. `/systematic:deepen-plan`
|
|
15
|
-
|
|
13
|
+
2. `/systematic:ce-plan $ARGUMENTS`
|
|
14
|
+
3. **Conditionally** run `/systematic:deepen-plan`
|
|
15
|
+
- Run the `deepen-plan` workflow only if the plan is `Standard` or `Deep`, touches a high-risk area (auth, security, payments, migrations, external APIs, significant rollout concerns), or still has obvious confidence gaps in decisions, sequencing, system-wide impact, risks, or verification
|
|
16
|
+
- If you run the `deepen-plan` workflow, confirm the plan was deepened or explicitly judged sufficiently grounded before moving on
|
|
17
|
+
- If you skip it, note why and continue to step 4
|
|
18
|
+
4. `/systematic:ce-work` — **Use swarm mode**: Make a Task list and launch an army of agent swarm subagents to build the plan
|
|
16
19
|
|
|
17
20
|
## Parallel Phase
|
|
18
21
|
|
|
19
22
|
After work completes, launch steps 5 and 6 as **parallel swarm agents** (both only need code to be written):
|
|
20
23
|
|
|
21
|
-
5. `/
|
|
24
|
+
5. `/systematic:ce-review` — spawn as background Task agent
|
|
22
25
|
6. `/systematic:test-browser` — spawn as background Task agent
|
|
23
26
|
|
|
24
27
|
Wait for both to complete before continuing.
|
|
@@ -30,3 +33,4 @@ Wait for both to complete before continuing.
|
|
|
30
33
|
9. Output `<promise>DONE</promise>` when video is in PR
|
|
31
34
|
|
|
32
35
|
Start with step 1 now.
|
|
36
|
+
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: test-browser
|
|
3
3
|
description: Run browser tests on pages affected by current PR or branch
|
|
4
|
-
argument-hint: '[PR number, branch name,
|
|
4
|
+
argument-hint: '[PR number, branch name, ''current'', or --port PORT]'
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Browser Test Command
|
|
@@ -122,31 +122,82 @@ Build a list of URLs to test based on the mapping.
|
|
|
122
122
|
|
|
123
123
|
</file_to_route_mapping>
|
|
124
124
|
|
|
125
|
-
### 4.
|
|
125
|
+
### 4. Detect Dev Server Port
|
|
126
|
+
|
|
127
|
+
<detect_port>
|
|
128
|
+
|
|
129
|
+
Determine the dev server port using this priority order:
|
|
130
|
+
|
|
131
|
+
**Priority 1: Explicit argument**
|
|
132
|
+
If the user passed a port number (e.g., `/test-browser 5000` or `/test-browser --port 5000`), use that port directly.
|
|
133
|
+
|
|
134
|
+
**Priority 2: AGENTS.md / project instructions**
|
|
135
|
+
```bash
|
|
136
|
+
# Check CLAUDE.md for port references
|
|
137
|
+
grep -Eio '(port\s*[:=]\s*|localhost:)([0-9]{4,5})' CLAUDE.md 2>/dev/null | grep -Eo '[0-9]{4,5}' | head -1
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Priority 3: package.json scripts**
|
|
141
|
+
```bash
|
|
142
|
+
# Check dev/start scripts for --port flags
|
|
143
|
+
grep -Eo '\-\-port[= ]+[0-9]{4,5}' package.json 2>/dev/null | grep -Eo '[0-9]{4,5}' | head -1
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Priority 4: Environment files**
|
|
147
|
+
```bash
|
|
148
|
+
# Check .env, .env.local, .env.development for PORT=
|
|
149
|
+
grep -h '^PORT=' .env .env.local .env.development 2>/dev/null | tail -1 | cut -d= -f2
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Priority 5: Default fallback**
|
|
153
|
+
If none of the above yields a port, default to `3000`.
|
|
154
|
+
|
|
155
|
+
Store the result in a `PORT` variable for use in all subsequent steps.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Combined detection (run this)
|
|
159
|
+
PORT="${EXPLICIT_PORT:-}"
|
|
160
|
+
if [ -z "$PORT" ]; then
|
|
161
|
+
PORT=$(grep -Eio '(port\s*[:=]\s*|localhost:)([0-9]{4,5})' CLAUDE.md 2>/dev/null | grep -Eo '[0-9]{4,5}' | head -1)
|
|
162
|
+
fi
|
|
163
|
+
if [ -z "$PORT" ]; then
|
|
164
|
+
PORT=$(grep -Eo '\-\-port[= ]+[0-9]{4,5}' package.json 2>/dev/null | grep -Eo '[0-9]{4,5}' | head -1)
|
|
165
|
+
fi
|
|
166
|
+
if [ -z "$PORT" ]; then
|
|
167
|
+
PORT=$(grep -h '^PORT=' .env .env.local .env.development 2>/dev/null | tail -1 | cut -d= -f2)
|
|
168
|
+
fi
|
|
169
|
+
PORT="${PORT:-3000}"
|
|
170
|
+
echo "Using dev server port: $PORT"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
</detect_port>
|
|
174
|
+
|
|
175
|
+
### 5. Verify Server is Running
|
|
126
176
|
|
|
127
177
|
<check_server>
|
|
128
178
|
|
|
129
|
-
Before testing, verify the local server is accessible:
|
|
179
|
+
Before testing, verify the local server is accessible using the detected port:
|
|
130
180
|
|
|
131
181
|
```bash
|
|
132
|
-
agent-browser open http://localhost
|
|
182
|
+
agent-browser open http://localhost:${PORT}
|
|
133
183
|
agent-browser snapshot -i
|
|
134
184
|
```
|
|
135
185
|
|
|
136
186
|
If server is not running, inform user:
|
|
137
187
|
```markdown
|
|
138
|
-
**Server not running**
|
|
188
|
+
**Server not running on port ${PORT}**
|
|
139
189
|
|
|
140
190
|
Please start your development server:
|
|
141
191
|
- Rails: `bin/dev` or `rails server`
|
|
142
192
|
- Node/Next.js: `npm run dev`
|
|
193
|
+
- Custom port: `/test-browser --port <your-port>`
|
|
143
194
|
|
|
144
195
|
Then run `/test-browser` again.
|
|
145
196
|
```
|
|
146
197
|
|
|
147
198
|
</check_server>
|
|
148
199
|
|
|
149
|
-
###
|
|
200
|
+
### 6. Test Each Affected Page
|
|
150
201
|
|
|
151
202
|
<test_pages>
|
|
152
203
|
|
|
@@ -154,13 +205,13 @@ For each affected route, use agent-browser CLI commands (NOT Chrome MCP):
|
|
|
154
205
|
|
|
155
206
|
**Step 1: Navigate and capture snapshot**
|
|
156
207
|
```bash
|
|
157
|
-
agent-browser open "http://localhost
|
|
208
|
+
agent-browser open "http://localhost:${PORT}/[route]"
|
|
158
209
|
agent-browser snapshot -i
|
|
159
210
|
```
|
|
160
211
|
|
|
161
212
|
**Step 2: For headed mode (visual debugging)**
|
|
162
213
|
```bash
|
|
163
|
-
agent-browser --headed open "http://localhost
|
|
214
|
+
agent-browser --headed open "http://localhost:${PORT}/[route]"
|
|
164
215
|
agent-browser --headed snapshot -i
|
|
165
216
|
```
|
|
166
217
|
|
|
@@ -185,7 +236,7 @@ agent-browser screenshot --full page-name-full.png # Full page
|
|
|
185
236
|
|
|
186
237
|
</test_pages>
|
|
187
238
|
|
|
188
|
-
###
|
|
239
|
+
### 7. Human Verification (When Required)
|
|
189
240
|
|
|
190
241
|
<human_verification>
|
|
191
242
|
|
|
@@ -214,7 +265,7 @@ Did it work correctly?
|
|
|
214
265
|
|
|
215
266
|
</human_verification>
|
|
216
267
|
|
|
217
|
-
###
|
|
268
|
+
### 8. Handle Failures
|
|
218
269
|
|
|
219
270
|
<failure_handling>
|
|
220
271
|
|
|
@@ -253,7 +304,7 @@ When a test fails:
|
|
|
253
304
|
|
|
254
305
|
</failure_handling>
|
|
255
306
|
|
|
256
|
-
###
|
|
307
|
+
### 9. Test Summary
|
|
257
308
|
|
|
258
309
|
<test_summary>
|
|
259
310
|
|
|
@@ -263,7 +314,7 @@ After all tests complete, present summary:
|
|
|
263
314
|
## Browser Test Results
|
|
264
315
|
|
|
265
316
|
**Test Scope:** PR #[number] / [branch name]
|
|
266
|
-
**Server:** http://localhost
|
|
317
|
+
**Server:** http://localhost:${PORT}
|
|
267
318
|
|
|
268
319
|
### Pages Tested: [count]
|
|
269
320
|
|
|
@@ -295,7 +346,7 @@ After all tests complete, present summary:
|
|
|
295
346
|
## Quick Usage Examples
|
|
296
347
|
|
|
297
348
|
```bash
|
|
298
|
-
# Test current branch changes
|
|
349
|
+
# Test current branch changes (auto-detects port)
|
|
299
350
|
/test-browser
|
|
300
351
|
|
|
301
352
|
# Test specific PR
|
|
@@ -303,6 +354,9 @@ After all tests complete, present summary:
|
|
|
303
354
|
|
|
304
355
|
# Test specific branch
|
|
305
356
|
/test-browser feature/new-dashboard
|
|
357
|
+
|
|
358
|
+
# Test on a specific port
|
|
359
|
+
/test-browser --port 5000
|
|
306
360
|
```
|
|
307
361
|
|
|
308
362
|
## agent-browser CLI Reference
|
|
@@ -323,10 +323,11 @@ mcp__xcodebuildmcp__shutdown_simulator({ simulator_id: "[uuid]" })
|
|
|
323
323
|
/xcode-test current
|
|
324
324
|
```
|
|
325
325
|
|
|
326
|
-
## Integration with /
|
|
326
|
+
## Integration with /systematic:ce-review
|
|
327
327
|
|
|
328
|
-
When reviewing PRs that touch iOS code, the `/
|
|
328
|
+
When reviewing PRs that touch iOS code, the `/systematic:ce-review` command can spawn this as a subagent:
|
|
329
329
|
|
|
330
330
|
```
|
|
331
|
-
|
|
331
|
+
Task general-purpose("Run /xcode-test for scheme [name]. Build, install on simulator, test key screens, check for crashes.")
|
|
332
332
|
```
|
|
333
|
+
|
|
@@ -132,7 +132,7 @@ Do you want to add this to the todo list?
|
|
|
132
132
|
## Work Log
|
|
133
133
|
|
|
134
134
|
### {date} - Approved for Work
|
|
135
|
-
**By:**
|
|
135
|
+
**By:** Claude Triage System
|
|
136
136
|
**Actions:**
|
|
137
137
|
- Issue approved during triage session
|
|
138
138
|
- Status changed from pending → ready
|
|
@@ -309,3 +309,4 @@ What would you like to do next?
|
|
|
309
309
|
2. commit the todos
|
|
310
310
|
3. nothing, go chill
|
|
311
311
|
```
|
|
312
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflows:brainstorm
|
|
3
|
+
description: '[DEPRECATED] Use /ce:brainstorm instead — renamed for clarity.'
|
|
4
|
+
argument-hint: '[feature idea or problem to explore]'
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
NOTE: /workflows:brainstorm is deprecated. Please use /ce:brainstorm instead. This alias will be removed in a future version.
|
|
9
|
+
|
|
10
|
+
/ce:brainstorm $ARGUMENTS
|
|
11
|
+
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:compound
|
|
3
|
-
description:
|
|
4
|
-
argument-hint:
|
|
3
|
+
description: '[DEPRECATED] Use /ce:compound instead — renamed for clarity.'
|
|
4
|
+
argument-hint: '[optional: brief context about the fix]'
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:plan
|
|
3
|
-
description:
|
|
4
|
-
argument-hint:
|
|
3
|
+
description: '[DEPRECATED] Use /ce:plan instead — renamed for clarity.'
|
|
4
|
+
argument-hint: '[feature description, bug report, or improvement idea]'
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:review
|
|
3
|
-
description:
|
|
4
|
-
argument-hint:
|
|
3
|
+
description: '[DEPRECATED] Use /ce:review instead — renamed for clarity.'
|
|
4
|
+
argument-hint: '[PR number, GitHub URL, branch name, or latest]'
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:work
|
|
3
|
-
description:
|
|
4
|
-
argument-hint:
|
|
3
|
+
description: '[DEPRECATED] Use /ce:work instead — renamed for clarity.'
|
|
4
|
+
argument-hint: '[plan file, specification, or todo file path]'
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: every-style-editor
|
|
3
|
-
description: Reviews and edits text content to conform to Every's editorial style guide. Use when written content needs style compliance checks for headlines, punctuation, voice, and formatting.
|
|
4
|
-
tools: Task, Glob, Grep, LS, ExitPlanMode, Read, Edit, MultiEdit, Write, NotebookRead, NotebookEdit, WebFetch, TodoWrite, WebSearch
|
|
5
|
-
mode: subagent
|
|
6
|
-
temperature: 0.1
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
You are an expert copy editor specializing in Every's house style guide. Your role is to meticulously review text content and suggest edits to ensure compliance with Every's specific editorial standards.
|
|
10
|
-
|
|
11
|
-
When reviewing content, you will:
|
|
12
|
-
|
|
13
|
-
1. **Systematically check each style rule** - Go through the style guide items one by one, checking the text against each rule
|
|
14
|
-
2. **Provide specific edit suggestions** - For each issue found, quote the problematic text and provide the corrected version
|
|
15
|
-
3. **Explain the rule being applied** - Reference which style guide rule necessitates each change
|
|
16
|
-
4. **Maintain the author's voice** - Make only the changes necessary for style compliance while preserving the original tone and meaning
|
|
17
|
-
|
|
18
|
-
**Every Style Guide Rules to Apply:**
|
|
19
|
-
|
|
20
|
-
- Headlines use title case; everything else uses sentence case
|
|
21
|
-
- Companies are singular ("it" not "they"); teams/people within companies are plural
|
|
22
|
-
- Remove unnecessary "actually," "very," or "just"
|
|
23
|
-
- Hyperlink 2-4 words when linking to sources
|
|
24
|
-
- Cut adverbs where possible
|
|
25
|
-
- Use active voice instead of passive voice
|
|
26
|
-
- Spell out numbers one through nine (except years at sentence start); use numerals for 10+
|
|
27
|
-
- Use italics for emphasis (never bold or underline)
|
|
28
|
-
- Image credits: _Source: X/Name_ or _Source: Website name_
|
|
29
|
-
- Don't capitalize job titles
|
|
30
|
-
- Capitalize after colons only if introducing independent clauses
|
|
31
|
-
- Use Oxford commas (x, y, and z)
|
|
32
|
-
- Use commas between independent clauses only
|
|
33
|
-
- No space after ellipsis...
|
|
34
|
-
- Em dashes—like this—with no spaces (max 2 per paragraph)
|
|
35
|
-
- Hyphenate compound adjectives except with adverbs ending in "ly"
|
|
36
|
-
- Italicize titles of books, newspapers, movies, TV shows, games
|
|
37
|
-
- Full names on first mention, last names thereafter (first names in newsletters/social)
|
|
38
|
-
- Percentages: "7 percent" (numeral + spelled out)
|
|
39
|
-
- Numbers over 999 take commas: 1,000
|
|
40
|
-
- Punctuation outside parentheses (unless full sentence inside)
|
|
41
|
-
- Periods and commas inside quotation marks
|
|
42
|
-
- Single quotes for quotes within quotes
|
|
43
|
-
- Comma before quote if introduced; no comma if text leads directly into quote
|
|
44
|
-
- Use "earlier/later/previously" instead of "above/below"
|
|
45
|
-
- Use "more/less/fewer" instead of "over/under" for quantities
|
|
46
|
-
- Avoid slashes; use hyphens when needed
|
|
47
|
-
- Don't start sentences with "This" without clear antecedent
|
|
48
|
-
- Avoid starting with "We have" or "We get"
|
|
49
|
-
- Avoid clichés and jargon
|
|
50
|
-
- "Two times faster" not "2x" (except for the common "10x" trope)
|
|
51
|
-
- Use "$1 billion" not "one billion dollars"
|
|
52
|
-
- Identify people by company/title (except well-known figures like Mark Zuckerberg)
|
|
53
|
-
- Button text is always sentence case -- "Complete setup"
|
|
54
|
-
|
|
55
|
-
**Output Format:**
|
|
56
|
-
|
|
57
|
-
Provide your review as a numbered list of suggested edits, grouping related changes when logical. For each edit:
|
|
58
|
-
|
|
59
|
-
- Quote the original text
|
|
60
|
-
- Provide the corrected version
|
|
61
|
-
- Briefly explain which style rule applies
|
|
62
|
-
|
|
63
|
-
If the text is already compliant with the style guide, acknowledge this and highlight any particularly well-executed style choices.
|
|
64
|
-
|
|
65
|
-
Be thorough but constructive, focusing on helping the content shine while maintaining Every's professional standards.
|
|
66
|
-
|