T01 · Skill Instruction Hijacking
Error
- Location
- conversation-id.md:73
- Finding
- Always-on task policy can override the current user-directed workflow< — subject-prefix references in user-visible output. Enforced by `resources/block-tasklist-id-in-conversation.sh` (PreToolUse:AskUserQuestion, registered in `settings.json`) | | completion-report | — | Always-on | [completion-report.md](./completion-report.md) — TaskUpdate completion format + file-change disclosure | | fix-plan-sync | — | Always-on | [fix-plan-sync.md](./fix-plan-sync.md) — two-way sync between task medium and checklist medium | | priority-prefix | — | Always-on | [priority-prefix.md](./priority-prefix.md) — priority/order via subject prefix (`P{n}`, PR-anchored, `fix-*` > P0) | ``` ### Technical Analysis The Skill does more than provide task-management functionality. It directs the agent to inspect TaskList before all new work and to handle pending entries before the current request. This can alter the active session goal even when the user did not ask to resume old tasks. The policy also directs the agent to delete completed or in-progress entries from prior sessions when their ...[truncated 1690 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Scope TaskList inspection to explicit task-management requests or to workflows in which the user has asked to resume tracked work. 2. State that the current user directive always takes precedence over unrelated TaskList entries. 3. Present unrelated pending entries as optional context rather than automatically processing them. 4. Never delete prior-session entries based only on an agent judgment that their context is gone. 5. Require explicit user confirmation before deleting or archiving any pre-existing task. 6. Prefer a reversible archival state over deletion and retain the original task metadata. 7. Remove the “Always-on” designation from policies that modify execution order or persistent state. ]]>
