Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .claude/.beads/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# ============== WARNING ==============================================================================
# File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
# See .config/.copier-managed-files.json for details.
#
# You are welcome to make changes to this file in your repo if they are custom to your project,
# but if the change should be shared with other projects, please backport it to the template repo.
# =====================================================================================================
# Dolt database (managed by Dolt, not git)
dolt/
dolt-access.lock
Expand Down
12 changes: 7 additions & 5 deletions .claude/.beads/config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# ============== WARNING ==============================================================================
# File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
# See .config/.copier-managed-files.json for details.
#
# You are welcome to make changes to this file in your repo if they are custom to your project,
# but if the change should be shared with other projects, please backport it to the template repo.
# =====================================================================================================
# Beads Configuration File
# This file configures default behavior for all bd commands in this repository
# All settings can also be set via environment variables (BD_* prefix)
Expand All @@ -19,11 +26,6 @@
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
# actor: ""

# Export events (audit trail) to .beads/events.jsonl on each flush/sync
# When enabled, new events are appended incrementally using a high-water mark.
# Use 'bd export --events' to trigger manually regardless of this setting.
# events-export: false

# Multi-repo configuration (experimental - bd-307)
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
# repos:
Expand Down
12 changes: 11 additions & 1 deletion .claude/commands/add-command.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ argument-hint: <command-name> <description>
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -165,3 +165,13 @@ Show differences and suggest improvements.
After creating: `/<command-name> [arguments]`

Example: `/review` or `/ai:gpt5 "explain this code"`

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
12 changes: 11 additions & 1 deletion .claude/commands/commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ argument-hint: [optional-commit-description]
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -55,3 +55,13 @@ Follows [Conventional Commits](https://www.conventionalcommits.org/) standard.
git add <files>
git commit -m "feat(#123): add validation to user input form"
```

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
12 changes: 11 additions & 1 deletion .claude/commands/create-adr.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Create a new ADR to document an architectural decision. ADRs capture the "why" b
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -238,3 +238,13 @@ To supersede an existing ADR:

- After creating: Commit with `/commit`
- If decision needs discussion: Create issue with `/create-issues`

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
24 changes: 18 additions & 6 deletions .claude/commands/create-issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Create structured implementation plan that bridges product thinking (PRD) with t
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -113,7 +113,7 @@ For each task, create a bd issue with:

```bash
bd create "Task title" \
--type [feature|bug|task|chore] \
--type [feature|bug|task|epic|chore|decision] \
--priority [1-3] \
--description "Context and what needs to be built" \
--design "Technical approach, architecture notes" \
Expand Down Expand Up @@ -149,8 +149,10 @@ bd create "Task title" \

**Dependencies**: Link related issues

The first argument is the issue that becomes blocked; the second is the blocker it waits on.

```bash
bd dep add ISSUE-123 ISSUE-456 --type blocks
bd dep add <blocked-id> <blocker-id> --type blocks
```

### Validation
Expand Down Expand Up @@ -179,17 +181,27 @@ After creating issues, verify:

### Beads Integration

Use Beads MCP to:
Use the `bd` CLI to:

- Track work with `bd ready` to find next task
- Create issues with `bd create "description"`
- Track dependencies with `bd dep add`

See <https://github.com/steveyegge/beads> for more information.
See <https://github.com/gastownhall/beads> for more information.

## Integration with Other Commands

- **Before /create-issues**: Use `/spike` if you need technical exploration first
- **After /create-issues**: Use `/red` to start TDD on first task
- **During work**: Use `bd update` to add notes/findings back to issues
- **When stuck**: Check `bd show ISSUE-ID` to review acceptance criteria
- **When stuck**: Check `bd show <id>` to review acceptance criteria

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
12 changes: 11 additions & 1 deletion .claude/commands/gap.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ argument-hint: [optional additional info]
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -43,3 +43,13 @@ If there are no gaps, confirm that everything discussed has been addressed.
Gap: $ARGUMENTS

**End of user arguments**

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
17 changes: 14 additions & 3 deletions .claude/commands/green.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ GREEN PHASE! Apply the below to the user input above.
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand All @@ -39,8 +39,9 @@ The foundation of TDD is the Red-Green-Refactor cycle:
1. **Red Phase**: Write ONE failing test that describes desired behavior

- The test must fail for the RIGHT reason (not syntax/import errors)
- Only one test at a time - this is critical for TDD discipline
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
- Only one new behavior at a time - this is critical for TDD discipline. "One test" means one new Given/When, not one assertion: write only enough to fail for the right reason, whether that lands in a new test block or as an assertion added to an existing one.
- Before writing a new test block, look for an existing test with the same Arrange and Act. If one exists, add the failing assertion there. A block that repeats another's setup and action is not more disciplined, just more setup to maintain, and it hides that both cover one behavior. Reserve a new block for a different precondition (Given) or a different action (When).
- Split test files by category if they exceed ~1000 lines
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
Expand Down Expand Up @@ -108,3 +109,13 @@ This phase is **not part of the regular TDD workflow** and must only be applied
- In the refactor phase, it is perfectly fine to refactor both test and implementation code. That said, completely new functionality is not allowed. Types, clean up, abstractions, and helpers are allowed as long as they do not introduce new behavior.
- Adding types, interfaces, or a constant in order to replace magic values is perfectly fine during refactoring.
- Provide the agent with helpful directions so that they do not get stuck when blocking them.

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
23 changes: 17 additions & 6 deletions .claude/commands/issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Analyze GitHub issue and create TDD implementation plan.
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -81,13 +81,13 @@ Understand the requirement by asking (use AskUserQuestion if needed):

### Beads Integration

Use Beads MCP to:
Use the `bd` CLI to:

- Track work with `bd ready` to find next task
- Create issues with `bd create "description"`
- Track dependencies with `bd dep add`
- Track dependencies with `bd dep add <blocked-id> <blocker-id>`

See <https://github.com/steveyegge/beads> for more information.
See <https://github.com/gastownhall/beads> for more information.

## TDD Fundamentals

Expand All @@ -98,8 +98,9 @@ The foundation of TDD is the Red-Green-Refactor cycle:
1. **Red Phase**: Write ONE failing test that describes desired behavior

- The test must fail for the RIGHT reason (not syntax/import errors)
- Only one test at a time - this is critical for TDD discipline
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
- Only one new behavior at a time - this is critical for TDD discipline. "One test" means one new Given/When, not one assertion: write only enough to fail for the right reason, whether that lands in a new test block or as an assertion added to an existing one.
- Before writing a new test block, look for an existing test with the same Arrange and Act. If one exists, add the failing assertion there. A block that repeats another's setup and action is not more disciplined, just more setup to maintain, and it hides that both cover one behavior. Reserve a new block for a different precondition (Given) or a different action (When).
- Split test files by category if they exceed ~1000 lines
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
Expand Down Expand Up @@ -160,3 +161,13 @@ This phase is **not part of the regular TDD workflow** and must only be applied
- In the refactor phase, it is perfectly fine to refactor both test and implementation code. That said, completely new functionality is not allowed. Types, clean up, abstractions, and helpers are allowed as long as they do not introduce new behavior.
- Adding types, interfaces, or a constant in order to replace magic values is perfectly fine during refactoring.
- Provide the agent with helpful directions so that they do not get stuck when blocking them.

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
12 changes: 11 additions & 1 deletion .claude/commands/polish.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ argument-hint: [branch, PR#, file, or area to polish]
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand Down Expand Up @@ -183,3 +183,13 @@ Additional cross-cutting checks:
Polish: $ARGUMENTS

**End of user arguments**

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
17 changes: 14 additions & 3 deletions .claude/commands/red.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ RED PHASE! Apply the below to the user input above.
- Write natural, descriptive code without meta-commentary about the development process
- The code should speak for itself - TDD is the process, not the product

Beads is available for task tracking. Use `mcp__beads__*` tools to manage issues (the user interacts via `bd` commands).
Beads is available for task tracking. Use `bd` CLI commands to manage issues.

## Plan File Restriction

Expand All @@ -39,8 +39,9 @@ The foundation of TDD is the Red-Green-Refactor cycle:
1. **Red Phase**: Write ONE failing test that describes desired behavior

- The test must fail for the RIGHT reason (not syntax/import errors)
- Only one test at a time - this is critical for TDD discipline
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
- Only one new behavior at a time - this is critical for TDD discipline. "One test" means one new Given/When, not one assertion: write only enough to fail for the right reason, whether that lands in a new test block or as an assertion added to an existing one.
- Before writing a new test block, look for an existing test with the same Arrange and Act. If one exists, add the failing assertion there. A block that repeats another's setup and action is not more disciplined, just more setup to maintain, and it hides that both cover one behavior. Reserve a new block for a different precondition (Given) or a different action (When).
- Split test files by category if they exceed ~1000 lines
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
Expand Down Expand Up @@ -124,3 +125,13 @@ Structure each test with clear phases:
- **Arrange**: Set up test data and preconditions (keep minimal)
- **Act**: Execute the single action being tested
- **Assert**: Verify the expected outcome with specific assertions

<!--
============== WARNING ==============================================================================
File is managed by copier template: gh:LabAutomationAndScreening/copier-base-template.git
See .config/.copier-managed-files.json for details.

You are welcome to make changes to this file in your repo if they are custom to your project,
but if the change should be shared with other projects, please backport it to the template repo.
=====================================================================================================
-->
Loading