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
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Bug report
description: Report broken behavior or a regression.
labels:
- bug
body:
- type: markdown
attributes:
value: |
Search open and closed issues first, and keep the report focused on one problem.

- type: textarea
id: description
attributes:
label: Description
description: Explain what happened and what you expected to happen.
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: Provide the smallest reliable reproduction you have.
placeholder: |
1.
2.
3.

- type: input
id: environment
attributes:
label: Environment
description: Include the Crapdash version, installation method, browser and version, and host OS when known.
placeholder: Crapdash 1.4.0, Docker, Firefox 140, Ubuntu 24.04

- type: textarea
id: evidence
attributes:
label: Additional evidence
description: Add relevant screenshots, recordings, or logs. Redact private URLs, configuration values, and other sensitive information.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: true
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Feature request
description: Propose a focused improvement or new capability.
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
Search open and closed issues first, and keep the request focused on one change.

- type: textarea
id: problem
attributes:
label: Problem or goal
description: Explain what is difficult, missing, or not possible today.
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Proposed change
description: Describe the desired behavior and what would make the request complete.
validations:
required: true

- type: textarea
id: context
attributes:
label: Additional context
description: Add related issues, screenshots, mockups, examples, or references.
19 changes: 19 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## What Changed

<!-- Describe the change clearly and keep scope tight. -->

## Why

<!-- Explain the problem being solved and why this approach was chosen. -->

## UI Changes

<!-- If this PR changes UI, include clear before/after screenshots.
If the change involves motion or interaction, include a short video.
Delete this section if not applicable. -->

## Validation

<!-- List the lint, test, build, and manual checks performed, including results.
Common project checks are `pnpm lint`, `pnpm test`, and `pnpm build`.
If none were performed, explain why. -->
27 changes: 26 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@

### Tests

- No test runner is configured right now (no Jest/Vitest scripts).
- `pnpm test` (runs the Vitest suite once)
- Tests live under `tests/`; add focused coverage for meaningful behavior changes and bug regressions.

## Repository layout

Expand All @@ -38,6 +39,7 @@
- `lib/` — server actions, data access, utilities, validation, and types.
- `data/` — persisted config and uploaded assets.
- `public/` — static assets.
- `tests/` — Vitest coverage for server actions, validation, data access, and shared behavior.

## Runtime behavior

Expand Down Expand Up @@ -78,6 +80,29 @@
- If a Zod validation fails, map `error.issues` to `ValidationError` entries.
- For unexpected errors, log and return a generic message (see patterns in `lib/actions.ts`).

## Branches, commits, and pull requests

- Use plain lowercase kebab-case for branch names. Keep names descriptive and do not include issue numbers, prefixes, or namespaces such as `feature/`, `fix/`, usernames, or agent names.
- Before every commit or amend, show the exact current diff and validation, then get explicit approval. Branch or pull-request requests are not commit approval; later changes require fresh approval.
- Never amend, rebase, squash, reset, rewrite history, or force-push without explicit approval for that exact operation.
- Write commit messages entirely lowercase. Use the imperative mood for the subject, keep each commit focused on one logical change, do not use type or scope prefixes, and do not end the subject with a period. Add a body when the reason or important tradeoffs are not clear from the subject.
- Keep each pull request focused on one coherent change.
- Write concise, specific, imperative pull request titles in sentence case. Do not use prefixes or trailing periods, and make the title understandable without the branch name.
- Pull request descriptions must include `What Changed`, `Why`, and `Validation`. Include `UI Changes` only when the pull request changes the UI. Keep descriptions concise, self-contained, complete, and accurate to the final diff.
- Link any related issues in the pull request description; do not include issue numbers in branch names.
- Review the complete diff before opening a pull request. Update the title and description whenever the scope changes, and remove unrelated changes.

## Issues

- Search open and closed issues before creating a new issue.
- Keep each issue focused on one problem or change.
- Use a concise, specific, sentence-case title without type prefixes.
- Give enough context to understand the issue without first inspecting the code.
- For bugs, describe the current and expected behavior. Include reproduction steps, environment details, and supporting evidence when available.
- For enhancements, explain the problem or goal, the desired outcome, and clear acceptance criteria.
- For UI issues, include screenshots. Include a short video when motion or interaction is relevant.
- Link any related issues and pull requests.
- Apply the appropriate existing labels when creating an issue: `bug` for defects, `enhancement` for feature requests, and `documentation` when the work primarily changes user or contributor documentation.

## Notes for agents

Expand Down