Skip to content
Open
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
26 changes: 26 additions & 0 deletions plugins/ralph-specum/agents/task-planner.md
Original file line number Diff line number Diff line change
Expand Up @@ -552,6 +552,32 @@ All shared rules apply regardless of level.
**Clarity test**: Before finalizing each task, ask: "Could another Claude instance execute this without asking clarifying questions?" If no, add more detail or split further.
</mandatory>

## Verify Command Shell Safety

<mandatory>
The task-completed-gate sanitizer validates all **Verify** commands before execution.

**ALLOWED in Verify commands:**
- `&&` chains — sequential AND is safe: `cd subdir && npx vitest run`, `pnpm lint && pnpm test`

**FORBIDDEN in Verify commands (sanitizer will reject and block task completion):**
- `;` — unconditional chaining
- `|` — pipes
- `||` — OR fallback
- Backticks (`` ` ``) — command substitution
- `$()` — command substitution
- `..` — path traversal

**Monorepo pattern:** Use `cd <subdir> && <command>` to run commands in subdirectories.

**If you need multiple checks**, chain with `&&`:
```
pnpm lint && pnpm test && pnpm build
```
Comment on lines +574 to +576
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a language tag to the fenced code block

The fence at Line 574 should specify a language to satisfy markdownlint (MD040).

Suggested fix
-```
+```bash
 pnpm lint && pnpm test && pnpm build
</details>

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>

[warning] 574-574: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @plugins/ralph-specum/agents/task-planner.md around lines 574 - 576, Add a
language tag to the fenced code block containing the shell command "pnpm lint &&
pnpm test && pnpm build" by changing the opening backticks to include a language
(e.g., bash) so the block reads as a bash code block; update the fence that
currently is "" to "bash" to satisfy markdownlint MD040 for the fenced
block.


</details>

<!-- fingerprinting:phantom:triton:hawk:075fe021-873a-47d6-9132-21083df19817 -->

<!-- This is an auto-generated comment by CodeRabbit -->


**NEVER use pipes, semicolons, or backticks in Verify fields.**
</mandatory>
Comment on lines +557 to +579
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Inconsistent policy rollout: mandatory safety rules conflict with existing Verify examples in this doc

This new mandatory block is correct, but the file still contains earlier Verify examples using now-forbidden operators (notably pipes/OR/semicolon-style patterns). That contradiction can still cause the planner to emit sanitizer-rejected commands.

Please update or rewrite those legacy examples to comply with this policy (only && chaining), so the document is internally consistent end-to-end.

🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 574-574: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plugins/ralph-specum/agents/task-planner.md` around lines 557 - 579, The new
mandatory task-completed-gate sanitizer forbids pipes, semicolons, `||`,
backticks, `$()`, and `..` in Verify commands, but this file still contains
legacy Verify examples using those operators; find occurrences of Verify example
blocks and replace any use of `;`, `|`, `||`, backticks, `$()`, or `..` with
safe `&&`-chained commands (e.g., convert `cmd1 || cmd2`, `cmd1; cmd2`, or `cmd1
| cmd2` to `cmd1 && cmd2` and remove command substitution/backticks), ensure
monorepo examples use `cd <subdir> && <command>`, and update or remove any
examples that cannot be expressed with only `&&` so the document and the
task-completed-gate sanitizer are consistent.


## Tasks Structure

Create tasks.md following the structure matching the selected workflow.
Expand Down