Skip to content

Commit cec933c

Browse files
committed
trim trailing whitespace, ensure files end in newline, add pre-commit hook and CI check
1 parent c573a76 commit cec933c

68 files changed

Lines changed: 367 additions & 270 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cursor/rules/cursor_rules.mdc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ alwaysApply: true
2727
```typescript
2828
// ✅ DO: Show good examples
2929
const goodExample = true;
30-
30+
3131
// ❌ DON'T: Show anti-patterns
3232
const badExample = false;
3333
```
@@ -50,4 +50,4 @@ alwaysApply: true
5050
- Keep descriptions concise
5151
- Include both DO and DON'T examples
5252
- Reference actual code over theoretical examples
53-
- Use consistent formatting across rules
53+
- Use consistent formatting across rules

.cursor/rules/self_improve.mdc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ alwaysApply: true
3838
select: { id: true, email: true },
3939
where: { status: 'ACTIVE' }
4040
});
41-
41+
4242
// Consider adding to [prisma.mdc](mdc:.cursor/rules/prisma.mdc):
4343
// - Standard select fields
4444
// - Common where conditions

.cursor/rules/taskmaster/dev_workflow.mdc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ All your standard command executions should operate on the user's current task c
3333
For new projects or when users are getting started, operate within the `master` tag context:
3434

3535
- Start new projects by running `initialize_project` tool / `task-master init` or `parse_prd` / `task-master parse-prd --input='<prd-file.txt>'` (see @`taskmaster.mdc`) to generate initial tasks.json with tagged structure
36-
- Configure rule sets during initialization with `--rules` flag (e.g., `task-master init --rules cursor,windsurf`) or manage them later with `task-master rules add/remove` commands
36+
- Configure rule sets during initialization with `--rules` flag (e.g., `task-master init --rules cursor,windsurf`) or manage them later with `task-master rules add/remove` commands
3737
- Begin coding sessions with `get_tasks` / `task-master list` (see @`taskmaster.mdc`) to see current tasks, status, and IDs
3838
- Determine the next task to work on using `next_task` / `task-master next` (see @`taskmaster.mdc`)
3939
- Analyze task complexity with `analyze_project_complexity` / `task-master analyze-complexity --research` (see @`taskmaster.mdc`) before breaking down tasks
@@ -136,7 +136,7 @@ Once you transition to tag-based workflows, the `master` tag should ideally cont
136136
1. **Identify the Initiative**: When user describes a significant feature
137137
2. **Create Dedicated Tag**: `add_tag feature-[name] --description="[Feature description]"`
138138
3. **Collaborative PRD Creation**: Work with user to create comprehensive PRD in `.taskmaster/docs/feature-[name]-prd.txt`
139-
4. **Parse & Prepare**:
139+
4. **Parse & Prepare**:
140140
- `parse_prd .taskmaster/docs/feature-[name]-prd.txt --tag=feature-[name]`
141141
- `analyze_project_complexity --tag=feature-[name] --research`
142142
- `expand_all --tag=feature-[name] --research`
@@ -168,7 +168,7 @@ Action: add_tag my-api-work --copy-from-current --description="My API tasks whil
168168
```
169169
User: "I want to add a complete user dashboard with analytics, user management, and reporting"
170170
Your Response: "This sounds like a major feature that would benefit from detailed planning. Let me create a dedicated context for this work and we can draft a PRD together to ensure we capture all requirements."
171-
Actions:
171+
Actions:
172172
1. add_tag feature-dashboard --description="User dashboard with analytics and management"
173173
2. Collaborate on PRD creation
174174
3. parse_prd dashboard-prd.txt --tag=feature-dashboard
@@ -263,9 +263,9 @@ Taskmaster offers two primary ways to interact:
263263
- Dependencies are displayed with status indicators (✅ for completed, ⏱️ for pending)
264264
- This helps quickly identify which prerequisite tasks are blocking work
265265
- **priority**: Importance level (Example: `"high"`, `"medium"`, `"low"`)
266-
- **details**: In-depth implementation instructions (Example: `"Use GitHub client ID/secret, handle callback, set session token."`)
267-
- **testStrategy**: Verification approach (Example: `"Deploy and call endpoint to confirm 'Hello World' response."`)
268-
- **subtasks**: List of smaller, more specific tasks (Example: `[{"id": 1, "title": "Configure OAuth", ...}]`)
266+
- **details**: In-depth implementation instructions (Example: `"Use GitHub client ID/secret, handle callback, set session token."`)
267+
- **testStrategy**: Verification approach (Example: `"Deploy and call endpoint to confirm 'Hello World' response."`)
268+
- **subtasks**: List of smaller, more specific tasks (Example: `[{"id": 1, "title": "Configure OAuth", ...}]`)
269269
- Refer to task structure details (previously linked to `tasks.mdc`).
270270

271271
## Configuration Management (Updated)
@@ -345,7 +345,7 @@ Taskmaster supports multiple AI coding assistant rule sets that can be configure
345345
- Use `move_task` / `task-master move --from=<id> --to=<id>` to move tasks or subtasks within the hierarchy
346346
- This command supports several use cases:
347347
- Moving a standalone task to become a subtask (e.g., `--from=5 --to=7`)
348-
- Moving a subtask to become a standalone task (e.g., `--from=5.2 --to=7`)
348+
- Moving a subtask to become a standalone task (e.g., `--from=5.2 --to=7`)
349349
- Moving a subtask to a different parent (e.g., `--from=5.2 --to=7.3`)
350350
- Reordering subtasks within the same parent (e.g., `--from=5.2 --to=5.4`)
351351
- Moving a task to a new, non-existent ID position (e.g., `--from=5 --to=25`)
@@ -421,4 +421,4 @@ Once a task has been broken down into subtasks using `expand_task` or similar me
421421
- Can help compare functions between files during migrations or identify potential naming conflicts.
422422

423423
---
424-
*This workflow provides a general guideline. Adapt it based on your specific project needs and team practices.*
424+
*This workflow provides a general guideline. Adapt it based on your specific project needs and team practices.*

.cursor/rules/taskmaster/taskmaster.mdc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ alwaysApply: true
88

99
This document provides a detailed reference for interacting with Taskmaster, covering both the recommended MCP tools, suitable for integrations like Cursor, and the corresponding `task-master` CLI commands, designed for direct user interaction or fallback.
1010

11-
**Note:** For interacting with Taskmaster programmatically or via integrated tools, using the **MCP tools is strongly recommended** due to better performance, structured data, and error handling. The CLI commands serve as a user-friendly alternative and fallback.
11+
**Note:** For interacting with Taskmaster programmatically or via integrated tools, using the **MCP tools is strongly recommended** due to better performance, structured data, and error handling. The CLI commands serve as a user-friendly alternative and fallback.
1212

1313
**Important:** Several MCP tools involve AI processing... The AI-powered tools include `parse_prd`, `analyze_project_complexity`, `update_subtask`, `update_task`, `update`, `expand_all`, `expand_task`, and `add_task`.
1414

@@ -38,8 +38,8 @@ This document provides a detailed reference for interacting with Taskmaster, cov
3838
* `skipInstall`: `Skip installing dependencies. Default is false.` (CLI: `--skip-install`)
3939
* `addAliases`: `Add shell aliases tm and taskmaster. Default is false.` (CLI: `--aliases`)
4040
* `yes`: `Skip prompts and use defaults/provided arguments. Default is false.` (CLI: `-y, --yes`)
41-
* **Usage:** Run this once at the beginning of a new project, typically via an integrated tool like Cursor. Operates on the current working directory of the MCP server.
42-
* **Important:** Once complete, you *MUST* parse a prd in order to generate tasks. There will be no tasks files until then. The next step after initializing should be to create a PRD using the example PRD in .taskmaster/templates/example_prd.txt.
41+
* **Usage:** Run this once at the beginning of a new project, typically via an integrated tool like Cursor. Operates on the current working directory of the MCP server.
42+
* **Important:** Once complete, you *MUST* parse a prd in order to generate tasks. There will be no tasks files until then. The next step after initializing should be to create a PRD using the example PRD in .taskmaster/templates/example_prd.txt.
4343
* **Tagging:** Use the `--tag` option to parse the PRD into a specific, non-default tag context. If the tag doesn't exist, it will be created automatically. Example: `task-master parse-prd spec.txt --tag=new-feature`.
4444

4545
### 2. Parse PRD (`parse_prd`)
@@ -84,7 +84,7 @@ This document provides a detailed reference for interacting with Taskmaster, cov
8484
* **Usage (CLI):** Run without flags to view current configuration and available models. Use set flags to update specific roles. Use `--setup` for guided configuration, including custom models. To set a custom model via flags, use `--set-<role>=<model_id>` along with either `--ollama` or `--openrouter`.
8585
* **Notes:** Configuration is stored in `.taskmaster/config.json` in the project root. This command/tool modifies that file. Use `listAvailableModels` or `task-master models` to see internally supported models. OpenRouter custom models are validated against their live API. Ollama custom models are not validated live.
8686
* **API note:** API keys for selected AI providers (based on their model) need to exist in the mcp.json file to be accessible in MCP context. The API keys must be present in the local .env file for the CLI to be able to read them.
87-
* **Model costs:** The costs in supported models are expressed in dollars. An input/output value of 3 is $3.00. A value of 0.8 is $0.80.
87+
* **Model costs:** The costs in supported models are expressed in dollars. An input/output value of 3 is $3.00. A value of 0.8 is $0.80.
8888
* **Warning:** DO NOT MANUALLY EDIT THE .taskmaster/config.json FILE. Use the included commands either in the MCP or CLI format as needed. Always prioritize MCP tools when available and use the CLI as a fallback.
8989

9090
---
@@ -555,4 +555,4 @@ Environment variables are used **only** for sensitive API keys related to AI pro
555555

556556
---
557557

558-
For details on how these commands fit into the development process, see the [dev_workflow.mdc](mdc:.cursor/rules/taskmaster/dev_workflow.mdc).
558+
For details on how these commands fit into the development process, see the [dev_workflow.mdc](mdc:.cursor/rules/taskmaster/dev_workflow.mdc).

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ GROQ_API_KEY="YOUR_GROQ_KEY_HERE" # Optional, for Groq model
99
OPENROUTER_API_KEY="YOUR_OPENROUTER_KEY_HERE" # Optional, for OpenRouter models.
1010
AZURE_OPENAI_API_KEY="your_azure_key_here" # Optional, for Azure OpenAI models (requires endpoint in .taskmaster/config.json).
1111
OLLAMA_API_KEY="your_ollama_api_key_here" # Optional: For remote Ollama servers that require authentication.
12-
GITHUB_API_KEY="your_github_api_key_here" # Optional: For GitHub import/export features. Format: ghp_... or github_pat_...
12+
GITHUB_API_KEY="your_github_api_key_here" # Optional: For GitHub import/export features. Format: ghp_... or github_pat_...

.github/wait-for-checks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* Wait for GitHub Actions checks to complete
3-
*
3+
*
44
* @param {Object} params
55
* @param {Object} params.github - GitHub API object
66
* @param {Object} params.context - GitHub context
@@ -25,7 +25,7 @@ const POLL_INTERVAL_MS = 10 * 1000; // 10 seconds between polls
2525
module.exports = async ({ github, context, core, checks }) => {
2626
// Use provided checks or default to all checks
2727
const REQUIRED_PREFIXES = checks || DEFAULT_REQUIRED_PREFIXES;
28-
28+
2929
if (checks) {
3030
core.info(`Waiting for specific checks: ${checks.join(", ")}`);
3131
} else {

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ jobs:
4040
if: runner.os != 'Windows'
4141
run: cargo fmt --all -- --check
4242

43+
- name: Check whitespace
44+
if: runner.os != 'Windows'
45+
run: ./scripts/check-whitespace.sh
46+
4347
- name: Run clippy
4448
if: runner.os != 'Windows'
4549
run: cargo clippy --all-targets --all-features

.github/workflows/shellcheck.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ jobs:
1616
shellcheck:
1717
name: ShellCheck
1818
runs-on: ubuntu-latest
19-
19+
2020
steps:
2121
- name: Checkout code
2222
uses: actions/checkout@v4
23-
23+
2424
- name: Install ShellCheck
2525
run: |
2626
sudo apt-get update
2727
sudo apt-get install -y shellcheck
28-
28+
2929
- name: Run ShellCheck
30-
run: ./scripts/shellcheck.sh
30+
run: ./scripts/shellcheck.sh

.taskmaster/docs/vscode-ext-prd.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,4 +165,4 @@ A VS Code extension that provides smart case-aware search and replace functional
165165
- E2E tests with actual CLI
166166
- UI component tests
167167
- Performance tests with large codebases
168-
- Cross-platform testing (Windows, macOS, Linux)
168+
- Cross-platform testing (Windows, macOS, Linux)
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
<context>
2-
# Overview
2+
# Overview
33
[Provide a high-level overview of your product here. Explain what problem it solves, who it's for, and why it's valuable.]
44

5-
# Core Features
5+
# Core Features
66
[List and describe the main features of your product. For each feature, include:
77
- What it does
88
- Why it's important
99
- How it works at a high level]
1010

11-
# User Experience
11+
# User Experience
1212
[Describe the user journey and experience. Include:
1313
- User personas
1414
- Key user flows
1515
- UI/UX considerations]
1616
</context>
1717
<PRD>
18-
# Technical Architecture
18+
# Technical Architecture
1919
[Outline the technical implementation details:
2020
- System components
2121
- Data models
2222
- APIs and integrations
2323
- Infrastructure requirements]
2424

25-
# Development Roadmap
25+
# Development Roadmap
2626
[Break down the development process into phases:
2727
- MVP requirements
2828
- Future enhancements
@@ -34,14 +34,14 @@
3434
- Getting as quickly as possible to something usable/visible front end that works
3535
- Properly pacing and scoping each feature so it is atomic but can also be built upon and improved as development approaches]
3636

37-
# Risks and Mitigations
37+
# Risks and Mitigations
3838
[Identify potential risks and how they'll be addressed:
3939
- Technical challenges
4040
- Figuring out the MVP that we can build upon
4141
- Resource constraints]
4242

43-
# Appendix
43+
# Appendix
4444
[Include any additional information:
4545
- Research findings
4646
- Technical specifications]
47-
</PRD>
47+
</PRD>

0 commit comments

Comments
 (0)