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.
- package/dist/cli.js +12 -1
- package/dist/cmdsec.js +306 -0
- package/dist/commands.js +26 -0
- package/dist/extensions.js +143 -0
- package/dist/injections.js +108 -0
- package/dist/theme.js +1 -1
- package/dist/tools.js +45 -4
- package/extensions/code-review/README.md +22 -0
- package/extensions/code-review/commands/review/best-practices.toml +15 -0
- package/extensions/code-review/commands/review/performance.toml +14 -0
- package/extensions/code-review/commands/review/security.toml +16 -0
- package/extensions/code-review/wormclaude-extension.json +6 -0
- package/extensions/conductor/README.md +250 -0
- package/extensions/conductor/commands/conductor/implement.toml +15 -0
- package/extensions/conductor/commands/conductor/newTrack.toml +16 -0
- package/extensions/conductor/commands/conductor/revert.toml +14 -0
- package/extensions/conductor/commands/conductor/setup.toml +16 -0
- package/extensions/conductor/commands/conductor/status.toml +15 -0
- package/extensions/conductor/templates/.wormclaudeignore +37 -0
- package/extensions/conductor/templates/code_styleguides/go.md +48 -0
- package/extensions/conductor/templates/code_styleguides/html-css.md +49 -0
- package/extensions/conductor/templates/code_styleguides/javascript.md +51 -0
- package/extensions/conductor/templates/code_styleguides/python.md +37 -0
- package/extensions/conductor/templates/code_styleguides/typescript.md +43 -0
- package/extensions/conductor/templates/general.md +23 -0
- package/extensions/conductor/templates/plan.md +18 -0
- package/extensions/conductor/templates/product-guidelines.md +25 -0
- package/extensions/conductor/templates/product.md +21 -0
- package/extensions/conductor/templates/tech-stack.md +25 -0
- package/extensions/conductor/templates/workflow.md +138 -0
- package/extensions/conductor/wormclaude-extension.json +6 -0
- package/extensions/git-helper/README.md +16 -0
- package/extensions/git-helper/commands/git/branch-cleanup.toml +13 -0
- package/extensions/git-helper/commands/git/smart-commit.toml +13 -0
- package/extensions/git-helper/wormclaude-extension.json +6 -0
- package/extensions/greet/README.md +76 -0
- package/extensions/greet/commands/greet.toml +4 -0
- package/extensions/greet/wormclaude-extension.json +6 -0
- package/extensions/registry.json +52 -0
- package/extensions/test-generator/README.md +22 -0
- package/extensions/test-generator/commands/test/coverage.toml +12 -0
- package/extensions/test-generator/commands/test/integration.toml +13 -0
- package/extensions/test-generator/commands/test/unit.toml +13 -0
- package/extensions/test-generator/wormclaude-extension.json +6 -0
- package/package.json +5 -2
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Google JavaScript Style Guide Summary
|
|
2
|
+
|
|
3
|
+
This document summarizes key rules and best practices from the Google JavaScript Style Guide.
|
|
4
|
+
|
|
5
|
+
## 1. Source File Basics
|
|
6
|
+
- **File Naming**: All lowercase, with underscores (`_`) or dashes (`-`). Extension must be `.js`.
|
|
7
|
+
- **File Encoding**: UTF-8.
|
|
8
|
+
- **Whitespace**: Use only ASCII horizontal spaces (0x20). Tabs are forbidden for indentation.
|
|
9
|
+
|
|
10
|
+
## 2. Source File Structure
|
|
11
|
+
- New files should be ES modules (`import`/`export`).
|
|
12
|
+
- **Exports**: Use named exports (`export {MyClass};`). Do not use default exports.
|
|
13
|
+
- **Imports**: Do not use line-wrapped imports. The `.js` extension in import paths is mandatory.
|
|
14
|
+
|
|
15
|
+
## 3. Formatting
|
|
16
|
+
- **Braces**: Required for all control structures (`if`, `for`, `while`, etc.), even single-line blocks. Use K&R style ("Egyptian brackets").
|
|
17
|
+
- **Indentation**: +2 spaces for each new block.
|
|
18
|
+
- **Semicolons**: Every statement must be terminated with a semicolon.
|
|
19
|
+
- **Column Limit**: 80 characters.
|
|
20
|
+
- **Line-wrapping**: Indent continuation lines at least +4 spaces.
|
|
21
|
+
- **Whitespace**: Use single blank lines between methods. No trailing whitespace.
|
|
22
|
+
|
|
23
|
+
## 4. Language Features
|
|
24
|
+
- **Variable Declarations**: Use `const` by default, `let` if reassignment is needed. `var` is forbidden.
|
|
25
|
+
- **Array Literals**: Use trailing commas. Do not use the `Array` constructor.
|
|
26
|
+
- **Object Literals**: Use trailing commas and shorthand properties. Do not use the `Object` constructor.
|
|
27
|
+
- **Classes**: Do not use JavaScript getter/setter properties (`get name()`). Provide ordinary methods instead.
|
|
28
|
+
- **Functions**: Prefer arrow functions for nested functions to preserve `this` context.
|
|
29
|
+
- **String Literals**: Use single quotes (`'`). Use template literals (`` ` ``) for multi-line strings or complex interpolation.
|
|
30
|
+
- **Control Structures**: Prefer `for-of` loops. `for-in` loops should only be used on dict-style objects.
|
|
31
|
+
- **this**: Only use `this` in class constructors, methods, or in arrow functions defined within them.
|
|
32
|
+
- **Equality Checks**: Always use identity operators (`===` / `!==`).
|
|
33
|
+
|
|
34
|
+
## 5. Disallowed Features
|
|
35
|
+
- `with` keyword.
|
|
36
|
+
- `eval()` or `Function(...string)`.
|
|
37
|
+
- Automatic Semicolon Insertion.
|
|
38
|
+
- Modifying builtin objects (`Array.prototype.foo = ...`).
|
|
39
|
+
|
|
40
|
+
## 6. Naming
|
|
41
|
+
- **Classes**: `UpperCamelCase`.
|
|
42
|
+
- **Methods & Functions**: `lowerCamelCase`.
|
|
43
|
+
- **Constants**: `CONSTANT_CASE` (all uppercase with underscores).
|
|
44
|
+
- **Non-constant Fields & Variables**: `lowerCamelCase`.
|
|
45
|
+
|
|
46
|
+
## 7. JSDoc
|
|
47
|
+
- JSDoc is used on all classes, fields, and methods.
|
|
48
|
+
- Use `@param`, `@return`, `@override`, `@deprecated`.
|
|
49
|
+
- Type annotations are enclosed in braces (e.g., `/** @param {string} userName */`).
|
|
50
|
+
|
|
51
|
+
Source: Google JavaScript Style Guide
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Google Python Style Guide Summary
|
|
2
|
+
|
|
3
|
+
This document summarizes key rules and best practices from the Google Python Style Guide.
|
|
4
|
+
|
|
5
|
+
## 1. Python Language Rules
|
|
6
|
+
- **Linting**: Run `pylint` on your code to catch bugs and style issues.
|
|
7
|
+
- **Imports**: Use `import x` for packages/modules. Use `from x import y` only when `y` is a submodule.
|
|
8
|
+
- **Exceptions**: Use built-in exception classes. Do not use bare `except:` clauses.
|
|
9
|
+
- **Global State**: Avoid mutable global state. Module-level constants are okay and should be `ALL_CAPS_WITH_UNDERSCORES`.
|
|
10
|
+
- **Comprehensions**: Use for simple cases. Avoid for complex logic where a full loop is more readable.
|
|
11
|
+
- **Default Argument Values**: Do not use mutable objects (like `[]` or `{}`) as default values.
|
|
12
|
+
- **True/False Evaluations**: Use implicit false (e.g., `if not my_list:`). Use `if foo is None:` to check for None.
|
|
13
|
+
- **Type Annotations**: Strongly encouraged for all public APIs.
|
|
14
|
+
|
|
15
|
+
## 2. Python Style Rules
|
|
16
|
+
- **Line Length**: Maximum 80 characters.
|
|
17
|
+
- **Indentation**: 4 spaces per indentation level. Never use tabs.
|
|
18
|
+
- **Blank Lines**: Two blank lines between top-level definitions (classes, functions). One blank line between method definitions.
|
|
19
|
+
- **Whitespace**: Avoid extraneous whitespace. Surround binary operators with single spaces.
|
|
20
|
+
- **Docstrings**: Use `"""triple double quotes"""`. Every public module, function, class, and method must have a docstring.
|
|
21
|
+
- Format: Start with a one-line summary. Include `Args:`, `Returns:`, and `Raises:` sections.
|
|
22
|
+
- **Strings**: Use f-strings for formatting. Be consistent with single (`'`) or double (`"`) quotes.
|
|
23
|
+
- **TODO Comments**: Use `TODO(username): Fix this.` format.
|
|
24
|
+
- **Imports Formatting**: Imports should be on separate lines and grouped: standard library, third-party, and your own application's imports.
|
|
25
|
+
|
|
26
|
+
## 3. Naming
|
|
27
|
+
- **General**: `snake_case` for modules, functions, methods, and variables.
|
|
28
|
+
- **Classes**: `PascalCase`.
|
|
29
|
+
- **Constants**: `ALL_CAPS_WITH_UNDERSCORES`.
|
|
30
|
+
- **Internal Use**: Use a single leading underscore (`_internal_variable`) for internal module/class members.
|
|
31
|
+
|
|
32
|
+
## 4. Main
|
|
33
|
+
- All executable files should have a `main()` function that contains the main logic, called from a `if __name__ == '__main__':` block.
|
|
34
|
+
|
|
35
|
+
BE CONSISTENT. When editing code, match the existing style.
|
|
36
|
+
|
|
37
|
+
Source: Google Python Style Guide
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Google TypeScript Style Guide Summary
|
|
2
|
+
|
|
3
|
+
This document summarizes key rules and best practices from the Google TypeScript Style Guide, which is enforced by the `gts` tool.
|
|
4
|
+
|
|
5
|
+
## 1. Language Features
|
|
6
|
+
- **Variable Declarations**: Always use `const` or `let`. `var` is forbidden. Use `const` by default.
|
|
7
|
+
- **Modules**: Use ES6 modules (`import`/`export`). Do not use `namespace`.
|
|
8
|
+
- **Exports**: Use named exports (`export {MyClass};`). Do not use default exports.
|
|
9
|
+
- **Classes**:
|
|
10
|
+
- Do not use `#private` fields. Use TypeScript's `private` visibility modifier.
|
|
11
|
+
- Mark properties never reassigned outside the constructor with `readonly`.
|
|
12
|
+
- Never use the `public` modifier (it's the default). Restrict visibility with `private` or `protected` where possible.
|
|
13
|
+
- **Functions**: Prefer function declarations for named functions. Use arrow functions for anonymous functions/callbacks.
|
|
14
|
+
- **String Literals**: Use single quotes (`'`). Use template literals (`` ` ``) for interpolation and multi-line strings.
|
|
15
|
+
- **Equality Checks**: Always use triple equals (`===`) and not equals (`!==`).
|
|
16
|
+
- **Type Assertions**: Avoid type assertions (`x as SomeType`) and non-nullability assertions (`y!`). If you must use them, provide a clear justification.
|
|
17
|
+
|
|
18
|
+
## 2. Disallowed Features
|
|
19
|
+
- **any Type**: Avoid `any`. Prefer `unknown` or a more specific type.
|
|
20
|
+
- **Wrapper Objects**: Do not instantiate `String`, `Boolean`, or `Number` wrapper classes.
|
|
21
|
+
- **Automatic Semicolon Insertion (ASI)**: Do not rely on it. Explicitly end all statements with a semicolon.
|
|
22
|
+
- **const enum**: Do not use `const enum`. Use plain `enum` instead.
|
|
23
|
+
- **eval() and Function(...string)**: Forbidden.
|
|
24
|
+
|
|
25
|
+
## 3. Naming
|
|
26
|
+
- **UpperCamelCase**: For classes, interfaces, types, enums, and decorators.
|
|
27
|
+
- **lowerCamelCase**: For variables, parameters, functions, methods, and properties.
|
|
28
|
+
- **CONSTANT_CASE**: For global constant values, including enum values.
|
|
29
|
+
- **_ Prefix/Suffix**: Do not use `_` as a prefix or suffix for identifiers, including for private properties.
|
|
30
|
+
|
|
31
|
+
## 4. Type System
|
|
32
|
+
- **Type Inference**: Rely on type inference for simple, obvious types. Be explicit for complex types.
|
|
33
|
+
- **undefined and null**: Both are supported. Be consistent within your project.
|
|
34
|
+
- **Optional vs. |undefined**: Prefer optional parameters and fields (`?`) over adding `|undefined` to the type.
|
|
35
|
+
- **Array<T> Type**: Use `T[]` for simple types. Use `Array<T>` for more complex union types (e.g., `Array<string | number>`).
|
|
36
|
+
- **{} Type**: Do not use `{}`. Prefer `unknown`, `Record<string, unknown>`, or `object`.
|
|
37
|
+
|
|
38
|
+
## 5. Comments and Documentation
|
|
39
|
+
- **JSDoc**: Use `/** JSDoc */` for documentation, `//` for implementation comments.
|
|
40
|
+
- **Redundancy**: Do not declare types in `@param` or `@return` blocks (e.g., `/** @param {string} user */`). This is redundant in TypeScript.
|
|
41
|
+
- **Add Information**: Comments must add information, not just restate the code.
|
|
42
|
+
|
|
43
|
+
Source: Google TypeScript Style Guide
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# General Code Style Principles
|
|
2
|
+
|
|
3
|
+
This document outlines general coding principles that apply across all languages and frameworks used in this project.
|
|
4
|
+
|
|
5
|
+
## Readability
|
|
6
|
+
- Code should be easy to read and understand by humans.
|
|
7
|
+
- Avoid overly clever or obscure constructs.
|
|
8
|
+
|
|
9
|
+
## Consistency
|
|
10
|
+
- Follow existing patterns in the codebase.
|
|
11
|
+
- Maintain consistent formatting, naming, and structure.
|
|
12
|
+
|
|
13
|
+
## Simplicity
|
|
14
|
+
- Prefer simple solutions over complex ones.
|
|
15
|
+
- Break down complex problems into smaller, manageable parts.
|
|
16
|
+
|
|
17
|
+
## Maintainability
|
|
18
|
+
- Write code that is easy to modify and extend.
|
|
19
|
+
- Minimize dependencies and coupling.
|
|
20
|
+
|
|
21
|
+
## Documentation
|
|
22
|
+
- Document why something is done, not just what.
|
|
23
|
+
- Keep documentation up-to-date with code changes.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Project Plan
|
|
2
|
+
|
|
3
|
+
> Source of truth for all work. Status markers: `[ ]` todo · `[~]` in progress · `[x]` done.
|
|
4
|
+
> Append the short commit SHA after a task when it is committed.
|
|
5
|
+
|
|
6
|
+
## Phase 1: <phase name> [checkpoint: <sha>]
|
|
7
|
+
|
|
8
|
+
- [ ] Task: <small, specific, testable task with clear acceptance criteria>
|
|
9
|
+
- [ ] Task: <...>
|
|
10
|
+
|
|
11
|
+
## Phase 2: <phase name>
|
|
12
|
+
|
|
13
|
+
- [ ] Task: <...>
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Backlog / Ideas
|
|
18
|
+
- <things noticed but not yet scheduled>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Product & Design Guidelines
|
|
2
|
+
|
|
3
|
+
## Design Principles
|
|
4
|
+
- Clean, modern aesthetics with generous whitespace.
|
|
5
|
+
- Responsive and accessible by default (keyboard, contrast, screen readers).
|
|
6
|
+
- Consistency over novelty — reuse existing components and patterns.
|
|
7
|
+
|
|
8
|
+
## UX Rules
|
|
9
|
+
- Prioritize the user's primary task; reduce steps and friction.
|
|
10
|
+
- Clear, human error messages; never expose raw stack traces to users.
|
|
11
|
+
- Feedback for every action (loading, success, failure states).
|
|
12
|
+
|
|
13
|
+
## Visual
|
|
14
|
+
- Typography-led hierarchy; import fonts from Google Fonts.
|
|
15
|
+
- Do not add icon libraries unless explicitly requested.
|
|
16
|
+
- Mobile: adequate touch targets (~44x44px), readable without zoom.
|
|
17
|
+
|
|
18
|
+
## Content & Tone
|
|
19
|
+
- Concise, direct, friendly. Match the product's audience.
|
|
20
|
+
|
|
21
|
+
## Accessibility Checklist
|
|
22
|
+
- [ ] Semantic HTML / proper roles
|
|
23
|
+
- [ ] Keyboard navigable
|
|
24
|
+
- [ ] Sufficient color contrast
|
|
25
|
+
- [ ] Alt text for meaningful images
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Product Specification
|
|
2
|
+
|
|
3
|
+
## Overall Goal
|
|
4
|
+
<One or two sentences: what this product is and who it's for.>
|
|
5
|
+
|
|
6
|
+
## Core Features
|
|
7
|
+
1. <feature> — <what it does, why it matters>
|
|
8
|
+
2. <feature> — <...>
|
|
9
|
+
|
|
10
|
+
## User Stories
|
|
11
|
+
- As a <user>, I want to <action> so that <benefit>.
|
|
12
|
+
|
|
13
|
+
## Requirements
|
|
14
|
+
- **Functional:** <what the system must do>
|
|
15
|
+
- **Non-functional:** <performance, security, accessibility, platforms>
|
|
16
|
+
|
|
17
|
+
## Out of Scope
|
|
18
|
+
- <explicitly not building, to avoid scope creep>
|
|
19
|
+
|
|
20
|
+
## Success Criteria
|
|
21
|
+
- <how we know it works / is done>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Tech Stack
|
|
2
|
+
|
|
3
|
+
> Document technology decisions here BEFORE implementing changes that deviate from them.
|
|
4
|
+
> Add a dated note whenever a decision changes.
|
|
5
|
+
|
|
6
|
+
## Languages & Runtimes
|
|
7
|
+
- <e.g. TypeScript (Node.js 20), Python 3.12>
|
|
8
|
+
|
|
9
|
+
## Frameworks & Key Libraries
|
|
10
|
+
- <e.g. Next.js, FastAPI, Tailwind — and why>
|
|
11
|
+
|
|
12
|
+
## Data & Infrastructure
|
|
13
|
+
- <database, hosting, queues, external services>
|
|
14
|
+
|
|
15
|
+
## Build / Test / Lint Commands
|
|
16
|
+
- Setup: <e.g. npm install>
|
|
17
|
+
- Dev: <e.g. npm run dev>
|
|
18
|
+
- Test: <e.g. npm test>
|
|
19
|
+
- Lint/Format/Types: <e.g. npm run lint · tsc>
|
|
20
|
+
|
|
21
|
+
## Architecture Notes
|
|
22
|
+
- <high-level structure, important patterns, directory layout>
|
|
23
|
+
|
|
24
|
+
## Decision Log
|
|
25
|
+
- YYYY-MM-DD — <decision and the reason>
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Project Workflow
|
|
2
|
+
|
|
3
|
+
How WormClaude works on software tasks inside a user's project. Adapt every concrete command to the project's actual language, framework, and OS (Windows/PowerShell vs. POSIX).
|
|
4
|
+
|
|
5
|
+
## Guiding Principles
|
|
6
|
+
|
|
7
|
+
1. **Track the work as you go:** Use `TodoWrite` for any task with 3+ steps. The todo list is the live source of truth for what is done and what remains.
|
|
8
|
+
2. **Project conventions live in `WORMCLAUDE.md`:** Run `/init` to scaffold it. Record the tech stack, build/test commands, and architectural decisions there. Update it *before* implementing a change that deviates from what is documented.
|
|
9
|
+
3. **Test where a test setup exists:** When the project has (or warrants) tests, write or update them alongside the change. Prefer test-first for well-specified logic; confirm tests fail before, pass after.
|
|
10
|
+
4. **Reasonable coverage:** Aim to cover new logic and its obvious edge/failure cases — not a coverage number for its own sake.
|
|
11
|
+
5. **Match the existing code:** Follow the project's established patterns and the rules in `code_styleguides/` and `general.md`. Consistency beats personal preference.
|
|
12
|
+
6. **Non-interactive & OS-aware:** Prefer non-interactive commands. Pass `CI=true` / `-y` / `--yes` to avoid watch-mode and prompts. On Windows use PowerShell-correct commands; do not assume a Unix shell.
|
|
13
|
+
7. **Act, don't just describe:** When asked to build or change something, use the tools (Write/Edit/Bash) to actually do it — don't paste code and stop.
|
|
14
|
+
|
|
15
|
+
## Task Workflow
|
|
16
|
+
|
|
17
|
+
For a typical coding task:
|
|
18
|
+
|
|
19
|
+
1. **Understand & track:** Read the relevant files first. Break the task into a `TodoWrite` list; mark one item `in_progress` at a time.
|
|
20
|
+
|
|
21
|
+
2. **(If testing) Write the test first:** Create/extend a test that defines the expected behavior. Run it and confirm it fails for the right reason before implementing.
|
|
22
|
+
|
|
23
|
+
3. **Implement:** Write the minimum code to satisfy the requirement (and make the test pass). Read a file before you Edit/overwrite it.
|
|
24
|
+
|
|
25
|
+
4. **Verify:** Run the test suite and/or exercise the feature with a Bash command. Run the project's linter/formatter/type-checker if it has one.
|
|
26
|
+
|
|
27
|
+
5. **Refactor (optional):** With tests green, tidy naming, remove duplication, and simplify — then re-run tests.
|
|
28
|
+
|
|
29
|
+
6. **Document deviations:** If the implementation diverges from `WORMCLAUDE.md` (new dependency, different approach), update `WORMCLAUDE.md` with a short dated note explaining why, then continue.
|
|
30
|
+
|
|
31
|
+
7. **Report:** Briefly state what changed — files created/modified and how to run/test it. Do not reprint full file contents unless asked.
|
|
32
|
+
|
|
33
|
+
8. **Commit (only when the user asks):** Stage the related changes and commit with a clear conventional message (see below). For large or multi-step work, a one-paragraph summary of *why* in the commit body is enough — no special tooling required.
|
|
34
|
+
|
|
35
|
+
> For large multi-phase work, treat each finished phase as a checkpoint: make sure its tests pass, summarize what was verified, and (if the user wants) tag/commit it before moving on.
|
|
36
|
+
|
|
37
|
+
## Quality Gates
|
|
38
|
+
|
|
39
|
+
Before calling a task done, check what applies:
|
|
40
|
+
|
|
41
|
+
- [ ] Tests pass (where tests exist)
|
|
42
|
+
- [ ] New logic and its edge/failure cases are covered
|
|
43
|
+
- [ ] Code follows the project's style (`code_styleguides/`, `general.md`) and existing patterns
|
|
44
|
+
- [ ] Public functions/types are documented where the project documents them (docstrings, JSDoc, GoDoc)
|
|
45
|
+
- [ ] Type safety respected (type hints / TS types / Go types)
|
|
46
|
+
- [ ] No new linting or static-analysis errors
|
|
47
|
+
- [ ] Works on the target surfaces (incl. mobile/responsive **if** it's a web/mobile UI)
|
|
48
|
+
- [ ] Docs updated if behavior changed
|
|
49
|
+
- [ ] No secrets committed and no obvious vulnerability introduced
|
|
50
|
+
|
|
51
|
+
## Development Commands
|
|
52
|
+
|
|
53
|
+
Adapt to the project's language/framework/build tools. Record the real commands in `WORMCLAUDE.md` once known.
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
# Setup — install deps / configure (e.g. npm install · go mod tidy · pip install -r requirements.txt)
|
|
57
|
+
# Develop — run/test/lint (e.g. npm run dev · npm test · go test ./... · pytest)
|
|
58
|
+
# Pre-commit — format + lint + types (e.g. npm run check · go fmt ./... · ruff check)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Testing Requirements
|
|
62
|
+
|
|
63
|
+
**Unit**
|
|
64
|
+
- Cover each module's core logic; test both success and failure paths.
|
|
65
|
+
- Use the project's setup/teardown idioms (fixtures, beforeEach/afterEach).
|
|
66
|
+
- Mock external dependencies (network, DB, filesystem) where appropriate.
|
|
67
|
+
|
|
68
|
+
**Integration** (when relevant)
|
|
69
|
+
- Exercise complete flows, auth/authorization, DB transactions, and form/API submissions.
|
|
70
|
+
|
|
71
|
+
**Mobile / responsive** (only if the project has a mobile or web UI)
|
|
72
|
+
- Verify responsive layouts and touch interactions; check performance on slower networks.
|
|
73
|
+
|
|
74
|
+
## Self-Review Checklist
|
|
75
|
+
|
|
76
|
+
Before considering a change finished:
|
|
77
|
+
|
|
78
|
+
1. **Functionality** — works as specified; edge cases handled; error messages are clear and user-friendly.
|
|
79
|
+
2. **Code quality** — follows the style guide; DRY; clear names; comments explain *why*, not *what*.
|
|
80
|
+
3. **Testing** — tests are meaningful and pass; coverage adequate for the change.
|
|
81
|
+
4. **Security** — no hardcoded secrets; input validated; injection (SQL/command/SSTI) and XSS prevented.
|
|
82
|
+
5. **Performance** — queries/loops reasonable; assets and caching sensible where it matters.
|
|
83
|
+
6. **UX** — if there's a UI: adequate touch targets, readable text, responsive, interactions feel native.
|
|
84
|
+
|
|
85
|
+
## Commit Guidelines
|
|
86
|
+
|
|
87
|
+
Conventional Commits format:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
<type>(<scope>): <description>
|
|
91
|
+
|
|
92
|
+
[optional body — the "why"]
|
|
93
|
+
[optional footer]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Types:** `feat` (feature) · `fix` (bug) · `docs` · `style` (formatting) · `refactor` · `test` · `chore` (maintenance).
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
git commit -m "feat(auth): add remember-me option"
|
|
100
|
+
git commit -m "fix(posts): correct excerpt for short posts"
|
|
101
|
+
git commit -m "test(comments): cover emoji reaction limits"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Definition of Done
|
|
105
|
+
|
|
106
|
+
1. Implemented to spec.
|
|
107
|
+
2. Tests written and passing (where tests apply).
|
|
108
|
+
3. Coverage adequate for the change.
|
|
109
|
+
4. Docs updated if behavior changed.
|
|
110
|
+
5. Passes the project's lint / static-analysis.
|
|
111
|
+
6. Works on the target surfaces (incl. mobile **if** applicable).
|
|
112
|
+
7. Notable decisions noted in `WORMCLAUDE.md`.
|
|
113
|
+
8. (If the user asked) committed with a proper message.
|
|
114
|
+
|
|
115
|
+
## Emergency Procedures
|
|
116
|
+
|
|
117
|
+
**Critical bug in production**
|
|
118
|
+
1. Branch a hotfix from main. 2. Write a failing test for the bug. 3. Implement the minimal fix. 4. Test thoroughly. 5. Deploy. 6. Note the incident in `WORMCLAUDE.md`.
|
|
119
|
+
|
|
120
|
+
**Data loss**
|
|
121
|
+
1. Stop write operations. 2. Restore from the latest backup. 3. Verify integrity. 4. Document the incident. 5. Improve the backup procedure.
|
|
122
|
+
|
|
123
|
+
**Security breach**
|
|
124
|
+
1. Rotate all secrets immediately. 2. Review access logs. 3. Patch the vulnerability. 4. Notify affected users if any. 5. Document and harden.
|
|
125
|
+
|
|
126
|
+
## Deployment Workflow
|
|
127
|
+
|
|
128
|
+
**Pre-deploy:** tests passing · no lint errors · env vars configured · DB migrations ready · backup created.
|
|
129
|
+
|
|
130
|
+
**Deploy:** merge to main → tag the release → push to the deployment target → run migrations → verify → smoke-test critical paths → watch for errors.
|
|
131
|
+
|
|
132
|
+
**Post-deploy:** monitor logs/analytics, gather feedback, plan the next iteration.
|
|
133
|
+
|
|
134
|
+
## Continuous Improvement
|
|
135
|
+
|
|
136
|
+
- Revisit this workflow when something repeatedly hurts; adjust it.
|
|
137
|
+
- Document lessons learned in `WORMCLAUDE.md`.
|
|
138
|
+
- Keep things simple and maintainable; optimize for the user's outcome.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Git Helper Extension
|
|
2
|
+
|
|
3
|
+
Provides helpful Git workflow automation commands for common operations.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
- `/git:smart-commit` - Analyzes staged changes and generates a conventional commit message
|
|
8
|
+
- `/git:branch-cleanup` - Helps clean up merged branches
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
wormclaude extensions install --from-registry git-helper
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or use `/browse-extensions` in the CLI and select this extension.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
description = "Find and help delete local branches already merged into the main branch"
|
|
2
|
+
prompt = """
|
|
3
|
+
Help the user clean up stale local branches.
|
|
4
|
+
|
|
5
|
+
Steps:
|
|
6
|
+
1. Determine the main branch (`main` or `master`) and the current branch via `git branch` and `git symbolic-ref refs/remotes/origin/HEAD` (fallback: ask).
|
|
7
|
+
2. List local branches already merged into main: `git branch --merged <main>` (exclude the main branch and the current branch).
|
|
8
|
+
3. Show the list to the user with a one-line note that these appear fully merged and safe to delete.
|
|
9
|
+
4. Only after the user confirms, delete them with `git branch -d <branch>` (safe delete — never `-D`/force unless the user explicitly insists).
|
|
10
|
+
5. Report what was deleted.
|
|
11
|
+
|
|
12
|
+
Never delete the main or current branch. Never touch remote branches. Never force-delete without explicit confirmation.
|
|
13
|
+
"""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
description = "Analyze staged changes and create a conventional commit message"
|
|
2
|
+
prompt = """
|
|
3
|
+
Create a high-quality commit for the currently staged changes.
|
|
4
|
+
|
|
5
|
+
Steps:
|
|
6
|
+
1. Run `git status` and `git diff --staged` to see exactly what is staged. If nothing is staged, run `git status` and ask the user what to stage (or suggest `git add`), then stop.
|
|
7
|
+
2. Run `git log -n 5 --oneline` to match the repository's existing commit style.
|
|
8
|
+
3. Write a Conventional Commits message: `<type>(<scope>): <description>` where type is one of feat, fix, docs, style, refactor, test, chore. Keep the subject under ~72 chars, imperative mood. Add a short body explaining the "why" only if the change is non-trivial.
|
|
9
|
+
4. Show the user the proposed message and run `git commit -m "..."`.
|
|
10
|
+
5. Confirm success with `git status`.
|
|
11
|
+
|
|
12
|
+
Do NOT stage files the user didn't intend, and never push.
|
|
13
|
+
"""
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Greet Extension
|
|
2
|
+
|
|
3
|
+
A simple greeting extension that demonstrates how to create on-demand extensions for WormClaude CLI.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
This extension adds a friendly greeting command that says hello to users. It's a minimal example showing the basic structure of an on-demand extension.
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
- `/greet` - Displays a friendly greeting message
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
### Via Browse Extensions Dialog (Recommended)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# In the CLI
|
|
19
|
+
/browse-extensions
|
|
20
|
+
# Navigate to "greet" and press Enter or 'i' to install
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Via Command Line
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
wormclaude extensions install --from-registry greet
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
After installation, restart the CLI to use the extension.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Start the CLI
|
|
35
|
+
wormclaude
|
|
36
|
+
|
|
37
|
+
# Use the greet command
|
|
38
|
+
/greet
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The command will display a friendly greeting message.
|
|
42
|
+
|
|
43
|
+
## Example Output
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
👋 Hello! Welcome to WormClaude CLI!
|
|
47
|
+
|
|
48
|
+
I'm here to help you with your development tasks.
|
|
49
|
+
Have a great day! 🌟
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Extension Details
|
|
53
|
+
|
|
54
|
+
- **Name**: greet
|
|
55
|
+
- **Version**: 1.0.0
|
|
56
|
+
- **Category**: fun
|
|
57
|
+
- **Author**: WormClaude Team
|
|
58
|
+
|
|
59
|
+
## Purpose
|
|
60
|
+
|
|
61
|
+
This extension serves as:
|
|
62
|
+
1. A simple example for developers learning to create extensions
|
|
63
|
+
2. A friendly welcome message for new users
|
|
64
|
+
3. A demonstration of the on-demand extension system
|
|
65
|
+
|
|
66
|
+
## Contributing
|
|
67
|
+
|
|
68
|
+
Feel free to enhance this extension by:
|
|
69
|
+
- Adding personalized greetings
|
|
70
|
+
- Including time-based greetings (morning, afternoon, evening)
|
|
71
|
+
- Adding multi-language support
|
|
72
|
+
- Including motivational quotes
|
|
73
|
+
|
|
74
|
+
## License
|
|
75
|
+
|
|
76
|
+
Same as WormClaude CLI
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extensions": [
|
|
3
|
+
{
|
|
4
|
+
"name": "conductor",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "Context-Driven Development: spec-driven planning, TDD workflow, and execution tracking.",
|
|
7
|
+
"category": "productivity",
|
|
8
|
+
"author": "WormClaude Team",
|
|
9
|
+
"path": "./conductor"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "git-helper",
|
|
13
|
+
"version": "1.0.0",
|
|
14
|
+
"description": "Git workflow automation: smart conventional commits and branch cleanup.",
|
|
15
|
+
"category": "productivity",
|
|
16
|
+
"author": "WormClaude Team",
|
|
17
|
+
"path": "./git-helper"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "code-review",
|
|
21
|
+
"version": "1.0.0",
|
|
22
|
+
"description": "Automated code review: security, performance, and best-practices passes.",
|
|
23
|
+
"category": "quality",
|
|
24
|
+
"author": "WormClaude Team",
|
|
25
|
+
"path": "./code-review"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "test-generator",
|
|
29
|
+
"version": "1.0.0",
|
|
30
|
+
"description": "Generate unit and integration tests and analyze coverage gaps.",
|
|
31
|
+
"category": "testing",
|
|
32
|
+
"author": "WormClaude Team",
|
|
33
|
+
"path": "./test-generator"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "exclude-tools",
|
|
37
|
+
"version": "1.0.0",
|
|
38
|
+
"description": "Example extension that disables specific tools for a restricted environment.",
|
|
39
|
+
"category": "other",
|
|
40
|
+
"author": "WormClaude Team",
|
|
41
|
+
"path": "./exclude-tools"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "greet",
|
|
45
|
+
"version": "1.0.0",
|
|
46
|
+
"description": "A simple greeting command — minimal example extension.",
|
|
47
|
+
"category": "fun",
|
|
48
|
+
"author": "WormClaude Team",
|
|
49
|
+
"path": "./greet"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Test Generator Extension
|
|
2
|
+
|
|
3
|
+
Automatically generate tests and analyze coverage for your code.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
- `/test:unit` - Generate unit tests for the current file or a named function
|
|
8
|
+
- `/test:integration` - Generate integration tests for a flow, endpoint, or module boundary
|
|
9
|
+
- `/test:coverage` - Analyze coverage and generate tests for the biggest gaps
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
wormclaude extensions install --from-registry test-generator
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Or use `/browse-extensions` in the CLI and select this extension.
|
|
18
|
+
|
|
19
|
+
## Notes
|
|
20
|
+
|
|
21
|
+
- Tests are written to match the project's existing framework and conventions (Jest/Vitest/pytest/go test/JUnit…) — never assumed.
|
|
22
|
+
- Generated tests are real and runnable; the command runs them and fixes failures before reporting.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "Analyze test coverage and generate tests for the biggest gaps"
|
|
2
|
+
prompt = """
|
|
3
|
+
Analyze test coverage and close the most important gaps.
|
|
4
|
+
|
|
5
|
+
Steps:
|
|
6
|
+
1. Find and run the project's coverage command (from README/manifest/config, e.g. `npm test -- --coverage`, `pytest --cov`, `go test -cover`). If there is no coverage tooling, say so and estimate gaps by reading the code and existing tests instead.
|
|
7
|
+
2. Identify the least-covered, highest-risk areas — prioritize core logic, error handling, and edge cases over trivial getters/config.
|
|
8
|
+
3. Propose a short, ranked list of the gaps worth covering and why.
|
|
9
|
+
4. For the top gaps, generate real unit/integration tests following the project's framework and conventions (Write the files), then re-run tests/coverage and report the improvement.
|
|
10
|
+
|
|
11
|
+
Focus on meaningful coverage of real behavior — do not chase a coverage number with shallow tests.
|
|
12
|
+
"""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
description = "Generate integration tests for a flow, endpoint, or module boundary"
|
|
2
|
+
prompt = """
|
|
3
|
+
Generate integration tests for the flow or boundary the user names (e.g. an API endpoint, a service + its DB, a multi-component flow).
|
|
4
|
+
|
|
5
|
+
Steps:
|
|
6
|
+
1. Map the flow: identify the entry point, the components/services involved, and the external systems (DB, queue, third-party API).
|
|
7
|
+
2. Detect the project's integration-test setup (test framework, fixtures, test DB, HTTP client like Supertest/requests/httptest). Match existing patterns; never assume.
|
|
8
|
+
3. Write tests that exercise the COMPLETE flow end-to-end, not units in isolation: real (or test-double) wiring, auth/authorization, DB transactions, and form/API submissions. Cover success and key failure scenarios.
|
|
9
|
+
4. Set up and tear down test state properly (fixtures, transactions, cleanup) so tests are isolated and repeatable.
|
|
10
|
+
5. Create the test file(s) with Write, run them, and confirm they pass.
|
|
11
|
+
|
|
12
|
+
If the project has no integration-test harness yet, scaffold a minimal one following the project's stack, and say what you added.
|
|
13
|
+
"""
|