Skip to content

Commit 668ce74

Browse files
committed
fix(ask): enforce read-only contract; fix compact.md heading spacing
Remove Shell from ask.yaml allowed_tools — the mode is declared read-only and Shell allows arbitrary mutating commands, breaking the contract. Add blank lines around all headings in compact.md to satisfy MD022.
1 parent 1b31ac2 commit 668ce74

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

src/pythinker_code/agents/default/ask.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ agent:
2626
- "pythinker_code.tools.agent:RunAgents"
2727
- "pythinker_code.tools.skill:ReadSkill"
2828
- "pythinker_code.tools.ask_user:AskUserQuestion"
29-
- "pythinker_code.tools.shell:Shell"
3029
- "pythinker_code.tools.file:ReadFile"
3130
- "pythinker_code.tools.file:ReadMediaFile"
3231
- "pythinker_code.tools.file:Glob"

src/pythinker_code/prompts/compact.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,41 @@ The above is a list of messages in an agent conversation. Compact it into a stab
66
Output exactly the Markdown structure shown below. Keep section names and order unchanged. Use terse bullets, not prose paragraphs. Preserve exact file paths, commands, error strings, identifiers, user constraints, and verification results when known. Do not mention the summary process or that context was compacted.
77

88
## Goal
9+
910
- [single-sentence summary of the user's current objective]
1011

1112
## Constraints & Preferences
13+
1214
- [user constraints, project rules, style preferences, approvals/trust boundaries, or "(none)"]
1315

1416
## Progress
17+
1518
### Done
19+
1620
- [completed work and verified outcomes, or "(none)"]
1721

1822
### In Progress
23+
1924
- [current partial work, active branch/session state, or "(none)"]
2025

2126
### Blocked
27+
2228
- [blockers, missing info, unavailable tools, or "(none)"]
2329

2430
## Key Decisions
31+
2532
- [decision and why it was chosen, or "(none)"]
2633

2734
## Next Steps
35+
2836
- [ordered next actions with acceptance/verification where known, or "(none)"]
2937

3038
## Critical Context
39+
3140
- [important technical facts, errors and resolutions, risks, assumptions, or "(none)"]
3241

3342
## Relevant Files
43+
3444
- [path: why it matters and latest known state, or "(none)"]
3545

3646
Rules:

0 commit comments

Comments
 (0)