wormclaude 1.0.12 → 1.0.14

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.
Files changed (45) hide show
  1. package/dist/cli.js +12 -1
  2. package/dist/cmdsec.js +306 -0
  3. package/dist/commands.js +26 -0
  4. package/dist/extensions.js +143 -0
  5. package/dist/injections.js +108 -0
  6. package/dist/theme.js +1 -1
  7. package/dist/tools.js +45 -4
  8. package/extensions/code-review/README.md +22 -0
  9. package/extensions/code-review/commands/review/best-practices.toml +15 -0
  10. package/extensions/code-review/commands/review/performance.toml +14 -0
  11. package/extensions/code-review/commands/review/security.toml +16 -0
  12. package/extensions/code-review/wormclaude-extension.json +6 -0
  13. package/extensions/conductor/README.md +250 -0
  14. package/extensions/conductor/commands/conductor/implement.toml +15 -0
  15. package/extensions/conductor/commands/conductor/newTrack.toml +16 -0
  16. package/extensions/conductor/commands/conductor/revert.toml +14 -0
  17. package/extensions/conductor/commands/conductor/setup.toml +16 -0
  18. package/extensions/conductor/commands/conductor/status.toml +15 -0
  19. package/extensions/conductor/templates/.wormclaudeignore +37 -0
  20. package/extensions/conductor/templates/code_styleguides/go.md +48 -0
  21. package/extensions/conductor/templates/code_styleguides/html-css.md +49 -0
  22. package/extensions/conductor/templates/code_styleguides/javascript.md +51 -0
  23. package/extensions/conductor/templates/code_styleguides/python.md +37 -0
  24. package/extensions/conductor/templates/code_styleguides/typescript.md +43 -0
  25. package/extensions/conductor/templates/general.md +23 -0
  26. package/extensions/conductor/templates/plan.md +18 -0
  27. package/extensions/conductor/templates/product-guidelines.md +25 -0
  28. package/extensions/conductor/templates/product.md +21 -0
  29. package/extensions/conductor/templates/tech-stack.md +25 -0
  30. package/extensions/conductor/templates/workflow.md +138 -0
  31. package/extensions/conductor/wormclaude-extension.json +6 -0
  32. package/extensions/git-helper/README.md +16 -0
  33. package/extensions/git-helper/commands/git/branch-cleanup.toml +13 -0
  34. package/extensions/git-helper/commands/git/smart-commit.toml +13 -0
  35. package/extensions/git-helper/wormclaude-extension.json +6 -0
  36. package/extensions/greet/README.md +76 -0
  37. package/extensions/greet/commands/greet.toml +4 -0
  38. package/extensions/greet/wormclaude-extension.json +6 -0
  39. package/extensions/registry.json +52 -0
  40. package/extensions/test-generator/README.md +22 -0
  41. package/extensions/test-generator/commands/test/coverage.toml +12 -0
  42. package/extensions/test-generator/commands/test/integration.toml +13 -0
  43. package/extensions/test-generator/commands/test/unit.toml +13 -0
  44. package/extensions/test-generator/wormclaude-extension.json +6 -0
  45. package/package.json +5 -2
package/dist/tools.js CHANGED
@@ -11,6 +11,9 @@ import { runAgentLoop } from './agent.js';
11
11
  import { tasks } from './tasks.js';
12
12
  import { getMcpToolSchemas, callMcpTool } from './mcp.js';
13
13
  import { getSkills, getSkill, buildSkillPrompt } from './skills.js';
14
+ import { getExcludedTools } from './extensions.js';
15
+ import { checkCommand } from './cmdsec.js';
16
+ import * as Diff from 'diff';
14
17
  import * as computer from './computer.js';
15
18
  // Agent/alt-agent araçlarının backend'e ulaşması için config. cli.tsx başlangıçta
16
19
  // setToolConfig ile aynı (mutable) config nesnesini verir → /config değişiklikleri görülür.
@@ -516,7 +519,9 @@ const computerToolSchemas = [
516
519
  ];
517
520
  export function allToolSchemas() {
518
521
  const sk = skillToolSchema();
519
- return [...toolSchemas, ...computerToolSchemas, ...getMcpToolSchemas(), ...(sk ? [sk] : [])];
522
+ const all = [...toolSchemas, ...computerToolSchemas, ...getMcpToolSchemas(), ...(sk ? [sk] : [])];
523
+ const excluded = new Set(getExcludedTools());
524
+ return excluded.size ? all.filter((t) => !excluded.has(t.function.name)) : all;
520
525
  }
521
526
  const TOOL_META = {
522
527
  Read: { readOnly: true, concurrencySafe: true },
@@ -599,6 +604,17 @@ async function execOne(call, hooks) {
599
604
  if (planMode && !isReadOnly(call.name)) {
600
605
  return { ok: false, output: 'Plan modunda — yazma/komut engellendi. Önce ExitPlanMode ile planı onaylat.', args };
601
606
  }
607
+ // 3.5) Komut güvenliği (Bash/PowerShell) — cmdsec: deny→blokla, allow→izinsiz, confirm→izin akışı
608
+ if ((call.name === 'Bash' || call.name === 'PowerShell') && args && args.command) {
609
+ const chk = checkCommand(String(args.command));
610
+ if (chk.decision === 'deny') {
611
+ return { ok: false, output: `⛔ Güvenlik: komut engellendi — ${chk.reason || 'tehlikeli komut'}`, args };
612
+ }
613
+ if (chk.decision === 'allow') {
614
+ const res = await executeTool(call.name, args);
615
+ return { ...res, args };
616
+ }
617
+ }
602
618
  // 4) İzin (gerekiyorsa)
603
619
  if (needsPermission(call.name) && hooks?.confirm) {
604
620
  const decision = await hooks.confirm(call, args);
@@ -761,6 +777,23 @@ const TYPE_EXT = {
761
777
  sh: ['sh', 'bash', 'zsh'],
762
778
  };
763
779
  // ── Executor ──────────────────────────────────────────────────────────────────
780
+ // Edit/Write icin +/- satir ozeti (Diff paketiyle).
781
+ function diffStat(oldStr, newStr) {
782
+ try {
783
+ let added = 0, removed = 0;
784
+ for (const part of Diff.diffLines(oldStr || '', newStr || '')) {
785
+ const n = part.count || (part.value ? part.value.split('\n').filter(Boolean).length : 0);
786
+ if (part.added)
787
+ added += n;
788
+ else if (part.removed)
789
+ removed += n;
790
+ }
791
+ return (added || removed) ? ` (+${added} -${removed})` : '';
792
+ }
793
+ catch {
794
+ return '';
795
+ }
796
+ }
764
797
  export async function executeTool(name, args) {
765
798
  try {
766
799
  if (name === 'See') {
@@ -874,9 +907,16 @@ export async function executeTool(name, args) {
874
907
  if (fs.existsSync(fp) && !readFiles.has(norm(fp)))
875
908
  return { ok: false, output: 'Error: existing file must be read first. Use the Read tool before overwriting.' };
876
909
  fs.mkdirSync(path.dirname(path.resolve(fp)), { recursive: true });
877
- fs.writeFileSync(fp, args.content ?? '');
910
+ const _wnew = args.content ?? '';
911
+ const _wold = (() => { try {
912
+ return fs.readFileSync(fp, 'utf8');
913
+ }
914
+ catch {
915
+ return '';
916
+ } })();
917
+ fs.writeFileSync(fp, _wnew);
878
918
  readFiles.add(norm(fp));
879
- return { ok: true, output: `Wrote ${fp} (${(args.content || '').length} chars)` };
919
+ return { ok: true, output: `Wrote ${fp} (${_wnew.length} chars)${diffStat(_wold, _wnew)}` };
880
920
  }
881
921
  if (name === 'Edit') {
882
922
  const fp = args.file_path;
@@ -897,9 +937,10 @@ export async function executeTool(name, args) {
897
937
  ok: false,
898
938
  output: `Error: old_string is not unique (${count} matches). Provide more surrounding context or set replace_all: true.`,
899
939
  };
940
+ const _ebefore = c;
900
941
  c = args.replace_all ? c.split(oldStr).join(newStr) : c.replace(oldStr, newStr);
901
942
  fs.writeFileSync(fp, c);
902
- return { ok: true, output: `Edited ${fp}${args.replace_all ? ` (${count} occurrences)` : ''}` };
943
+ return { ok: true, output: `Edited ${fp}${args.replace_all ? ` (${count} occurrences)` : ''}${diffStat(_ebefore, c)}` };
903
944
  }
904
945
  if (name === 'Glob') {
905
946
  const base = args.path || process.cwd();
@@ -0,0 +1,22 @@
1
+ # Code Review Extension
2
+
3
+ Automated code review assistant. Each command reviews the current uncommitted diff by default, or a path you name.
4
+
5
+ ## Commands
6
+
7
+ - `/review:security` - Security-focused review (injection, XSS, access control, secrets, SSRF, deps…)
8
+ - `/review:performance` - Performance review (complexity, N+1 queries, I/O, memory, re-renders…)
9
+ - `/review:best-practices` - Code quality review (readability, structure, error handling, tests, docs)
10
+
11
+ ## Installation
12
+
13
+ ```
14
+ wormclaude extensions install --from-registry code-review
15
+ ```
16
+
17
+ Or use `/browse-extensions` in the CLI and select this extension.
18
+
19
+ ## Notes
20
+
21
+ - Reviews are read-only by default — they report findings with `file:line` evidence and concrete fixes; they don't change code unless you ask.
22
+ - If the project has `code_styleguides/`, `/review:best-practices` holds the code to those guides.
@@ -0,0 +1,15 @@
1
+ description = "Review the current changes or a path for code quality and best practices"
2
+ prompt = """
3
+ Review for code quality and adherence to best practices. Default scope: the uncommitted diff (`git diff HEAD`); otherwise the path the user names. If `code_styleguides/` exists, hold the code to it.
4
+
5
+ Check, with file:line evidence:
6
+ - Readability & naming: clear intent, consistent style, no dead/commented-out code.
7
+ - Structure: DRY, single-responsibility, sensible module boundaries, low coupling.
8
+ - Error handling: errors checked (not swallowed), meaningful messages, no bare catches.
9
+ - Types & contracts: types/annotations present and honest; no `any`-style escape hatches.
10
+ - Tests: meaningful coverage for new logic and edge/failure cases.
11
+ - Docs: public functions/types documented per project convention.
12
+ - Conventions: matches the surrounding code and the project's style guides.
13
+
14
+ For each issue: location, why it matters, and a concrete suggestion. Distinguish must-fix from nice-to-have. Be constructive and specific. Read/analyze only unless asked to change code.
15
+ """
@@ -0,0 +1,14 @@
1
+ description = "Performance-focused review of the current changes or a given path"
2
+ prompt = """
3
+ Perform a performance review. Default scope: the uncommitted diff (`git diff HEAD`); otherwise the path the user names.
4
+
5
+ Look for, with file:line evidence:
6
+ - Algorithmic complexity: needless O(n^2)+ loops, repeated work that could be cached/memoized.
7
+ - Database: N+1 queries, missing indexes, SELECT *, unbounded result sets, queries in loops.
8
+ - I/O & network: synchronous/blocking calls on hot paths, missing batching, chatty requests.
9
+ - Memory: leaks, large allocations, retaining references, loading whole files when streaming would do.
10
+ - Frontend: unnecessary re-renders, large bundles, unoptimized images, layout thrashing.
11
+ - Concurrency: lock contention, blocking the event loop.
12
+
13
+ For each issue: location, why it's slow, the realistic impact, and a concrete fix (with a code sketch where useful). Prioritize by expected impact. Do not micro-optimize where it doesn't matter — call that out too. Read/analyze only unless asked to change code.
14
+ """
@@ -0,0 +1,16 @@
1
+ description = "Security-focused review of the current changes or a given path"
2
+ prompt = """
3
+ Perform a security review. Default scope: the uncommitted diff (`git diff HEAD`); if the repo is clean or the user names a path, review that path instead.
4
+
5
+ Look for, and prove each finding with file:line:
6
+ - Injection: SQL, command, SSTI, LDAP/NoSQL.
7
+ - XSS / missing output encoding; dangerous innerHTML/render.
8
+ - Broken access control: IDOR, missing authz, security-by-obscurity.
9
+ - Auth/session: weak tokens, broken JWT verification, plaintext/weak password storage.
10
+ - Secrets committed in code or config.
11
+ - Path traversal, unsafe file ops, unsafe deserialization.
12
+ - SSRF, open redirect, CORS misconfiguration.
13
+ - Vulnerable/outdated dependencies.
14
+
15
+ For each finding give: location, class, severity (Critical/High/Medium/Low), real-world impact, and a concrete secure fix. Be precise — back every claim with code. End with a short prioritized summary. This is read/analyze only; do not change code unless asked.
16
+ """
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "code-review",
3
+ "version": "1.0.0",
4
+ "description": "Automated code review: security, performance, and best-practices passes.",
5
+ "contextFileName": "README.md"
6
+ }
@@ -0,0 +1,250 @@
1
+ # Conductor Extension for wormclaude CLI
2
+
3
+ The Conductor extension enables Context-Driven Development (CDD) - a structured approach to software development that emphasizes clear specifications, systematic planning, and rigorous execution tracking.
4
+
5
+ ## Overview
6
+
7
+ Conductor provides a spec-driven workflow that guides you through:
8
+ 1. **Context** - Understanding the problem and requirements
9
+ 2. **Spec & Plan** - Creating detailed specifications and implementation plans
10
+ 3. **Implement** - Following the plan with strict adherence to workflow
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ wormclaude extensions install ./path/to/conductor
16
+ ```
17
+
18
+ Or copy this example to your extensions directory:
19
+
20
+ ```bash
21
+ cp -r packages/cli/src/commands/extensions/examples/conductor ~/.wormclaude/extensions/
22
+ ```
23
+
24
+ ## Commands
25
+
26
+ ### `/conductor:setup`
27
+ Initialize a new project with Conductor workflow files.
28
+
29
+ **Usage:**
30
+
31
+ ```
32
+ /conductor:setup
33
+ ```
34
+
35
+ **What it creates:**
36
+ - `plan.md` - Project plan with phases and tasks
37
+ - `tech-stack.md` - Technology decisions and architecture
38
+ - `product.md` - Product specification and requirements
39
+ - `product-guidelines.md` - Design and development guidelines
40
+ - `workflow.md` - Development workflow and processes
41
+ - `code_styleguides/` - Language-specific style guides
42
+ - `.wormclaudeignore` - Files to exclude from wormclaude context
43
+
44
+ ### `/conductor:newTrack`
45
+ Create a new development track (feature/bug fix) with planning.
46
+
47
+ **Usage:**
48
+
49
+ ```
50
+ /conductor:newTrack
51
+ ```
52
+
53
+ **What it does:**
54
+ - Analyzes current project state
55
+ - Creates detailed implementation plan
56
+ - Sets up tracking structure
57
+ - Guides through specification process
58
+
59
+ ### `/conductor:implement`
60
+ Work on the current track following Conductor workflow.
61
+
62
+ **Usage:**
63
+
64
+ ```
65
+ /conductor:implement
66
+ ```
67
+
68
+ **What it does:**
69
+ - Enforces Test-Driven Development (TDD)
70
+ - Tracks task progress in `plan.md`
71
+ - Manages git commits with detailed notes
72
+ - Handles phase completion and checkpointing
73
+ - Ensures quality gates are met
74
+
75
+ ### `/conductor:status`
76
+ Show current project status and progress.
77
+
78
+ **Usage:**
79
+
80
+ ```
81
+ /conductor:status
82
+ ```
83
+
84
+ **What it shows:**
85
+ - Current phase and tasks
86
+ - Completed work with commit references
87
+ - Quality metrics and coverage
88
+ - Next steps and recommendations
89
+
90
+ ### `/conductor:revert`
91
+ Revert changes using git-aware rollback.
92
+
93
+ **Usage:**
94
+
95
+ ```
96
+ /conductor:revert
97
+ ```
98
+
99
+ **What it does:**
100
+ - Safely reverts to previous checkpoints
101
+ - Handles track, phase, or task-level rollbacks
102
+ - Preserves git history and notes
103
+ - Updates plan.md accordingly
104
+
105
+ ## Workflow Overview
106
+
107
+ ### 1. Project Setup
108
+
109
+ ```bash
110
+ # Initialize new project with Conductor
111
+ /conductor:setup
112
+
113
+ # Review and customize generated files
114
+ # - Edit product.md with your requirements
115
+ # - Update tech-stack.md with your technology choices
116
+ # - Customize workflow.md for your team
117
+ ```
118
+
119
+ ### 2. Development Cycle
120
+
121
+ ```bash
122
+ # Start new feature/track
123
+ /conductor:newTrack
124
+
125
+ # Work on implementation
126
+ /conductor:implement
127
+
128
+ # Check progress
129
+ /conductor:status
130
+
131
+ # Revert if needed
132
+ /conductor:revert
133
+ ```
134
+
135
+ ### 3. Quality Gates
136
+ Every task must pass:
137
+ - ✅ All tests pass
138
+ - ✅ Code coverage >80%
139
+ - ✅ Follows style guidelines
140
+ - ✅ Documentation updated
141
+ - ✅ Security review (if applicable)
142
+
143
+ ## Key Features
144
+
145
+ ### Test-Driven Development
146
+ - Enforces Red-Green-Refactor cycle
147
+ - Requires failing tests before implementation
148
+ - Tracks coverage metrics
149
+ - Integrates with project test frameworks
150
+
151
+ ### Git Integration
152
+ - Automatic commit tracking
153
+ - Detailed git notes for audit trail
154
+ - Phase checkpointing
155
+ - Safe rollback capabilities
156
+
157
+ ### Progress Tracking
158
+ - Task status in `plan.md`
159
+ - Commit SHA tracking
160
+ - Phase completion markers
161
+ - Quality gate verification
162
+
163
+ ### Template System
164
+ - Project templates for common setups
165
+ - Code style guides for multiple languages
166
+ - Workflow templates adaptable to any tech stack
167
+ - Product specification templates
168
+
169
+ ## File Structure
170
+
171
+ After setup, your project will have:
172
+
173
+ ```
174
+ project/
175
+ ├── plan.md # Main project plan
176
+ ├── tech-stack.md # Technology decisions
177
+ ├── product.md # Product specification
178
+ ├── product-guidelines.md # Design guidelines
179
+ ├── workflow.md # Development workflow
180
+ ├── .wormclaudeignore # wormclaude exclusions
181
+ └── code_styleguides/ # Style guides
182
+ ├── general.md
183
+ ├── javascript.md
184
+ ├── typescript.md
185
+ ├── python.md
186
+ └── go.md
187
+ ```
188
+
189
+ ## Best Practices
190
+
191
+ ### Planning
192
+ - Keep tasks small and specific
193
+ - Write clear acceptance criteria
194
+ - Update tech-stack.md before implementation
195
+ - Review product.md regularly
196
+
197
+ ### Implementation
198
+ - Follow TDD strictly (Red-Green-Refactor)
199
+ - Commit frequently with descriptive messages
200
+ - Update plan.md as you complete tasks
201
+ - Run quality checks before marking tasks complete
202
+
203
+ ### Team Collaboration
204
+ - Use consistent commit message format
205
+ - Review and update workflow.md together
206
+ - Share code style guidelines
207
+ - Conduct regular retrospectives
208
+
209
+ ## Customization
210
+
211
+ ### Adapting Templates
212
+ The templates in `templates/` can be customized:
213
+ - Modify `workflow.md` for your team's process
214
+ - Update style guides for your coding standards
215
+ - Customize `product.md` template for your domain
216
+ - Add new templates as needed
217
+
218
+ ### Project-Specific Setup
219
+ - Update `.wormclaudeignore` for your project structure
220
+ - Modify quality gates in workflow.md
221
+ - Adapt testing requirements
222
+ - Customize deployment processes
223
+
224
+ ## Troubleshooting
225
+
226
+ ### Common Issues
227
+
228
+ **Q: Tests are failing during implementation**
229
+ A: This is expected in TDD. Write failing tests first (Red), then implement to make them pass (Green), then refactor.
230
+
231
+ **Q: Can't find previous checkpoint**
232
+ A: Use `/conductor:status` to see available checkpoints, or check git notes with `git notes list`.
233
+
234
+ **Q: Quality gates are too strict**
235
+ A: Customize the quality requirements in `workflow.md` to match your project needs.
236
+
237
+ **Q: Extension commands not working**
238
+ A: Ensure the extension is properly installed with `wormclaude extensions list`.
239
+
240
+ ## Contributing
241
+
242
+ To improve the Conductor extension:
243
+ 1. Fork the repository
244
+ 2. Make your changes
245
+ 3. Test with real projects
246
+ 4. Submit a pull request
247
+
248
+ ## License
249
+
250
+ This extension follows the same license as wormclaude CLI.
@@ -0,0 +1,15 @@
1
+ description = "Work the current track: TDD, task tracking, quality gates, and commits"
2
+ prompt = """
3
+ Implement the next available task on the current Conductor track, following the workflow in `workflow.md`.
4
+
5
+ For the next `[ ]` task in `plan.md` (in order):
6
+ 1. Mark it `[~]` (in progress) in `plan.md`.
7
+ 2. Mirror the task's steps into TodoWrite so progress is visible.
8
+ 3. If the project has tests (or the task warrants them), write the failing test FIRST and confirm it fails for the right reason.
9
+ 4. Implement the minimum code to satisfy the task and make the test pass. Follow the project's conventions and `code_styleguides/`. Read a file before you Edit it.
10
+ 5. Verify: run the project's build, lint, type-check, and tests (find the real commands from README/manifest — never assume). Do a quick functional check.
11
+ 6. If the implementation deviated from `tech-stack.md`, update it with a dated note.
12
+ 7. When the task passes the quality gates in `workflow.md`, mark it `[x]` in `plan.md`. If the user asked to commit, stage the related changes and commit with a clear conventional message.
13
+
14
+ Then stop and report what you completed and what the next task is. Do NOT silently work the whole plan at once — one task per invocation unless the user says otherwise.
15
+ """
@@ -0,0 +1,16 @@
1
+ description = "Start a new development track (feature/bug fix) with a planned set of phases and tasks"
2
+ prompt = """
3
+ Start a new Conductor development track for the work described by the user.
4
+
5
+ Steps:
6
+ 1. Read `product.md`, `tech-stack.md`, and `plan.md` if they exist (run `/conductor:setup` first if they do not).
7
+ 2. Clarify the goal: restate the feature/fix in one or two sentences. Ask one sharp question ONLY if a critical detail is missing; otherwise proceed with reasonable assumptions and note them.
8
+ 3. Break the work into phases, and each phase into small, specific, testable tasks with clear acceptance criteria.
9
+ 4. Append the new track to `plan.md` using checkboxes:
10
+ - `[ ]` not started, `[~]` in progress, `[x]` done.
11
+ - Group tasks under phase headings.
12
+ 5. If the approach changes the tech stack, update `tech-stack.md` with a dated note BEFORE implementing.
13
+ 6. Summarize the track and tell the user to run `/conductor:implement` to begin.
14
+
15
+ Use the Write/Edit tools to update plan.md. Keep tasks small enough to finish and verify individually.
16
+ """
@@ -0,0 +1,14 @@
1
+ description = "Safely roll back the last task or phase using git, and update the plan"
2
+ prompt = """
3
+ Help the user safely revert recent Conductor work.
4
+
5
+ Steps:
6
+ 1. Run `git status` and `git log --oneline -n 10` to show the recent commits and current state.
7
+ 2. Ask the user (or infer from their request) the rollback scope: the last TASK, the last PHASE, or a specific commit.
8
+ 3. Propose the exact git command(s) you would run (e.g. `git revert <sha>` to keep history, or `git reset --hard <sha>` only if the user explicitly wants to discard). Prefer `git revert` (non-destructive) by default. Explain the impact before running anything.
9
+ 4. Only after the user confirms, perform the rollback.
10
+ 5. Update `plan.md` to reflect the reverted task/phase status (change `[x]`/`[~]` back to `[ ]` as appropriate).
11
+ 6. Confirm the final state with `git status`.
12
+
13
+ NEVER discard uncommitted work or force-reset without explicit confirmation. Never push.
14
+ """
@@ -0,0 +1,16 @@
1
+ description = "Initialize the project for Context-Driven Development (plan, specs, workflow, style guides)"
2
+ prompt = """
3
+ You are setting up Context-Driven Development (CDD) for the CURRENT project.
4
+
5
+ Steps:
6
+ 1. Explore the repo: Read the package manifest (package.json, requirements.txt, go.mod, pyproject.toml, Cargo.toml, etc.) and a few key files to detect the language, framework, and purpose.
7
+ 2. Read the template files in this extension's `templates/` directory (Read them — do not invent their contents).
8
+ 3. Create these files in the PROJECT ROOT, adapting each template to THIS project. Use the Write tool for each, one call per file:
9
+ - `plan.md`, `tech-stack.md`, `product.md`, `product-guidelines.md`, `workflow.md`, `.wormclaudeignore`
10
+ - `code_styleguides/` — copy only the guides relevant to the detected stack, and always include `general.md`.
11
+ 4. Fill `tech-stack.md` and `product.md` with what you actually inferred from the repo; leave clearly-marked TODOs where you genuinely cannot tell.
12
+ 5. Do NOT overwrite an existing file without saying so — if one exists, skip it and note it.
13
+ 6. Finish with a short summary of what was created and tell the user the next step is `/conductor:newTrack`.
14
+
15
+ Keep going until all files are created. Be concise in your final report.
16
+ """
@@ -0,0 +1,15 @@
1
+ description = "Show the current track status: phases, tasks, progress, and next steps"
2
+ prompt = """
3
+ Report the current Conductor status.
4
+
5
+ Steps:
6
+ 1. Read `plan.md`. If it does not exist, tell the user to run `/conductor:setup` and `/conductor:newTrack`.
7
+ 2. Summarize:
8
+ - Current phase and which task is in progress (`[~]`).
9
+ - Completed tasks (`[x]`) and how many remain (`[ ]`), as a simple progress count.
10
+ - If commit SHAs or checkpoints are recorded in plan.md, list the most recent ones.
11
+ 3. If a test/coverage report is easy to obtain (e.g. the project has a coverage script), you MAY run it and report the number — otherwise skip it.
12
+ 4. End with a clear recommended next step (usually `/conductor:implement`).
13
+
14
+ This is a READ-ONLY status report — do not modify any files.
15
+ """
@@ -0,0 +1,37 @@
1
+ # Files and directories WormClaude should ignore for project context.
2
+ # Same glob style as .gitignore.
3
+
4
+ # Dependencies
5
+ node_modules/
6
+ vendor/
7
+ .venv/
8
+ venv/
9
+ __pycache__/
10
+
11
+ # Build output
12
+ dist/
13
+ build/
14
+ out/
15
+ target/
16
+ .next/
17
+ coverage/
18
+
19
+ # Logs & temp
20
+ *.log
21
+ .DS_Store
22
+ tmp/
23
+ .cache/
24
+
25
+ # Secrets (never load into context)
26
+ .env
27
+ .env.*
28
+ *.pem
29
+ *.key
30
+
31
+ # Large/binary assets
32
+ *.zip
33
+ *.tar.gz
34
+ *.mp4
35
+ *.png
36
+ *.jpg
37
+ *.pdf
@@ -0,0 +1,48 @@
1
+ # Effective Go Style Guide Summary
2
+
3
+ This document summarizes key rules and best practices from the official "Effective Go" guide for writing idiomatic Go code.
4
+
5
+ ## 1. Formatting
6
+ - **gofmt**: All Go code must be formatted with `gofmt` (or `go fmt`). This is a non-negotiable, automated standard.
7
+ - **Indentation**: Use tabs for indentation (gofmt handles this).
8
+ - **Line Length**: Go has no strict line length limit. Let gofmt handle line wrapping.
9
+
10
+ ## 2. Naming
11
+ - **MixedCaps**: Use `MixedCaps` or `mixedCaps` for multi-word names. Do not use underscores.
12
+ - **Exported vs. Unexported**: Names starting with an uppercase letter are exported (public). Names starting with a lowercase letter are not exported (private).
13
+ - **Package Names**: Short, concise, single-word, lowercase names.
14
+ - **Getters**: Do not name getters with a `Get` prefix. A getter for a field named `owner` should be named `Owner()`.
15
+ - **Interface Names**: One-method interfaces are named by the method name plus an `-er` suffix (e.g., `Reader`, `Writer`).
16
+
17
+ ## 3. Control Structures
18
+ - **if**: No parentheses around the condition. Braces are mandatory. Can include an initialization statement (e.g., `if err := file.Chmod(0664); err != nil`).
19
+ - **for**: Go's only looping construct. Unifies `for` and `while`. Use `for...range` to iterate over slices, maps, strings, and channels.
20
+ - **switch**: More general than in C. Cases do not fall through by default (use `fallthrough` explicitly). Can be used without an expression to function as a cleaner if-else-if chain.
21
+
22
+ ## 4. Functions
23
+ - **Multiple Returns**: Functions can return multiple values. This is the standard way to return a result and an error (e.g., `value, err`).
24
+ - **Named Result Parameters**: Return parameters can be named. This can make code clearer and more concise.
25
+ - **defer**: Schedules a function call to be run immediately before the function executing `defer` returns. Use it for cleanup tasks like closing files.
26
+
27
+ ## 5. Data
28
+ - **new vs. make**:
29
+ - `new(T)`: Allocates memory for a new item of type T, zeroes it, and returns a pointer (`*T`).
30
+ - `make(T, ...)`: Creates and initializes slices, maps, and channels only. Returns an initialized value of type T (not a pointer).
31
+ - **Slices**: The preferred way to work with sequences. They are more flexible than arrays.
32
+ - **Maps**: Use the "comma ok" idiom to check for the existence of a key: `value, ok := myMap[key]`.
33
+
34
+ ## 6. Interfaces
35
+ - **Implicit Implementation**: A type implements an interface by implementing its methods. No `implements` keyword is needed.
36
+ - **Small Interfaces**: Prefer many small interfaces over one large one. The standard library is full of single-method interfaces (e.g., `io.Reader`).
37
+
38
+ ## 7. Concurrency
39
+ - **Share Memory By Communicating**: This is the core philosophy. Do not communicate by sharing memory; instead, share memory by communicating.
40
+ - **Goroutines**: Lightweight, concurrently executing functions. Start one with the `go` keyword.
41
+ - **Channels**: Typed conduits for communication between goroutines. Use `make` to create them.
42
+
43
+ ## 8. Errors
44
+ - **error type**: The built-in `error` interface is the standard way to handle errors.
45
+ - **Explicit Error Handling**: Do not discard errors with the blank identifier (`_`). Check for errors explicitly.
46
+ - **panic**: Reserved for truly exceptional, unrecoverable situations. Generally, libraries should not panic.
47
+
48
+ Source: Effective Go
@@ -0,0 +1,49 @@
1
+ # Google HTML/CSS Style Guide Summary
2
+
3
+ This document summarizes key rules and best practices from the Google HTML/CSS Style Guide.
4
+
5
+ ## 1. General Rules
6
+ - **Protocol**: Use HTTPS for all embedded resources.
7
+ - **Indentation**: Indent by 2 spaces. Do not use tabs.
8
+ - **Capitalization**: Use only lowercase for all code (element names, attributes, selectors, properties).
9
+ - **Trailing Whitespace**: Remove all trailing whitespace.
10
+ - **Encoding**: Use UTF-8 (without a BOM). Specify `<meta charset="utf-8">` in HTML.
11
+
12
+ ## 2. HTML Style Rules
13
+ - **Document Type**: Use `<!doctype html>`.
14
+ - **HTML Validity**: Use valid HTML.
15
+ - **Semantics**: Use HTML elements according to their intended purpose (e.g., use `<p>` for paragraphs, not for spacing).
16
+ - **Multimedia Fallback**: Provide `alt` text for images and transcripts/captions for audio/video.
17
+ - **Separation of Concerns**: Strictly separate structure (HTML), presentation (CSS), and behavior (JavaScript). Link to CSS and JS from external files.
18
+ - **type Attributes**: Omit `type` attributes for stylesheets (`<link>`) and scripts (`<script>`).
19
+
20
+ ## 3. HTML Formatting Rules
21
+ - **General**: Use a new line for every block, list, or table element, and indent its children.
22
+ - **Quotation Marks**: Use double quotation marks (`""`) for attribute values.
23
+
24
+ ## 4. CSS Style Rules
25
+ - **CSS Validity**: Use valid CSS.
26
+ - **Class Naming**: Use meaningful, generic names. Separate words with a hyphen (`-`).
27
+ - Good: `.video-player`, `.site-navigation`
28
+ - Bad: `.vid`, `.red-text`
29
+ - **ID Selectors**: Avoid using ID selectors for styling. Prefer class selectors.
30
+ - **Shorthand Properties**: Use shorthand properties where possible (e.g., `padding`, `font`).
31
+ - **0 and Units**: Omit units for 0 values (e.g., `margin: 0;`).
32
+ - **Leading 0s**: Always include leading 0s for decimal values (e.g., `font-size: 0.8em;`).
33
+ - **Hexadecimal Notation**: Use 3-character hex notation where possible (e.g., `#fff`).
34
+ - **!important**: Avoid using `!important`.
35
+
36
+ ## 5. CSS Formatting Rules
37
+ - **Declaration Order**: Alphabetize declarations within a rule.
38
+ - **Indentation**: Indent all block content.
39
+ - **Semicolons**: Use a semicolon after every declaration.
40
+ - **Spacing**:
41
+ - Use a space after a property name's colon (`font-weight: bold;`).
42
+ - Use a space between the last selector and the opening brace (`.foo {`).
43
+ - Start a new line for each selector and declaration.
44
+ - **Rule Separation**: Separate rules with a new line.
45
+ - **Quotation Marks**: Use single quotes (`''`) for attribute selectors and property values (e.g., `[type='text']`).
46
+
47
+ BE CONSISTENT. When editing code, match the existing style.
48
+
49
+ Source: Google HTML/CSS Style Guide