wormclaude 1.0.12 → 1.0.13
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/extensions.js +137 -0
- package/dist/theme.js +1 -1
- package/dist/tools.js +4 -1
- 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 +3 -2
|
@@ -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
|
|
@@ -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
|