Skip to content
Back to skills

494 2026 01 26 14 30 00 Planning Feature Deletion D3530f3c

ASecurity

**Remove the planning feature entirely from tunacode.** The feature (a read-only mode restricting agent to information gathering before code modifications) is not actively used and adds maintenance burden across 9 layers.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 1, 2026
testinggorefactoringgitdocumentation

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned June 1, 2026

npx -y skills add tools-only/X-Skills --skill 494-2026-01-26_14-30-00_planning-feature-deletion_d3530f3c --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 494 2026 01 26 14 30 00 Planning Feature Deletion D3530f3c?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 494 2026 01 26 14 30 00 Planning Feature Deletion D3530f3c
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-494-2026-01-26-14-30-00-planning-feature-deletion-/badge)](https://www.skillsdirectory.com/skills/tools-only-494-2026-01-26-14-30-00-planning-feature-deletion-)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
title: "Planning Feature Deletion – Plan"
phase: Plan
date: "2026-01-26T14:30:00Z"
owner: "agent"
parent_research: "memory-bank/research/2026-01-26_planning-feature-deletion.md"
git_commit_at_plan: "ba2ac938"
tags: [plan, deletion, cleanup, planning-feature]
---

## Goal

**Remove the planning feature entirely from tunacode.** The feature (a read-only mode restricting agent to information gathering before code modifications) is not actively used and adds maintenance burden across 9 layers.

**Non-goals:**
- Refactoring related code beyond deletion
- Adding new features to replace planning
- Touching unrelated failing tests (Gate 2 dependency work)

## Scope & Assumptions

**In scope:**
- Delete 4 files (tool, prompt, UI panel, tests)
- Modify 17 files to remove planning references
- Update 4 documentation files

**Out of scope:**
- The failing "layers" test (Gate 2 work, unrelated)
- Any functionality enhancements

**Assumptions:**
- No external integrations depend on `/plan` command
- All planning code is captured in the research doc
- Branch `delete-plan` is the working branch

## Deliverables (DoD)

| Artifact | Acceptance Criteria |
|----------|---------------------|
| Clean deletion | All 4 files deleted, no orphaned imports |
| No regressions | `uv run pytest` passes (except known Gate 2 failures) |
| No type errors | `uv run mypy` shows no NEW errors |
| Clean lint | `uv run ruff check .` passes |
| Updated docs | All codebase-map references removed |

## Readiness (DoR)

- [x] Research document complete with full file/line mapping
- [x] Git branch `delete-plan` exists
- [x] Working directory clean

## Milestones

- **M1:** Delete standalone files (tests, prompts, UI panel)
- **M2:** Remove tool registration and delete tool implementation
- **M3:** Remove authorization layer references
- **M4:** Remove UI command and state references
- **M5:** Remove types, constants, and update documentation

## Work Breakdown (Tasks)

### Task 1: Delete Standalone Files (M1)
**Summary:** Delete files with no dependents
**Owner:** agent
**Dependencies:** none
**Files:**
- DELETE `tests/unit/core/test_present_plan.py`
- DELETE `src/tunacode/tools/prompts/present_plan_prompt.xml`
- DELETE `src/tunacode/ui/plan_approval.py`

**Acceptance Tests:**
- Files no longer exist
- No import errors when running pytest

---

### Task 2: Remove Tool Registration & Delete Tool (M2)
**Summary:** Unregister from agent, then delete tool
**Owner:** agent
**Dependencies:** Task 1
**Files:**
- MODIFY `src/tunacode/core/agents/agent_components/agent_config.py` - remove present_plan registration (~lines 433-435)
- DELETE `src/tunacode/tools/present_plan.py`

**Acceptance Tests:**
- Agent initializes without present_plan tool
- No import errors

---

### Task 3: Remove Authorization Layer (M3)
**Summary:** Remove plan mode blocking rules
**Owner:** agent
**Dependencies:** Task 2
**Files:**
- MODIFY `src/tunacode/tools/authorization/factory.py` - remove PlanModeBlockRule import/registration
- MODIFY `src/tunacode/tools/authorization/rules.py` - remove PlanModeBlockRule class, PLAN_MODE_BLOCKED_TOOLS
- MODIFY `src/tunacode/tools/authorization/context.py` - remove plan_mode field

**Acceptance Tests:**
- Authorization system works without plan_mode
- Tool authorization tests pass

---

### Task 4: Remove UI Command & State (M4)
**Summary:** Remove /plan command and approval handling
**Owner:** agent
**Dependencies:** Task 3
**Files:**
- MODIFY `src/tunacode/ui/commands/__init__.py` - remove PlanCommand class
- MODIFY `src/tunacode/ui/app.py` - remove request_plan_approval(), _handle_plan_approval_key(), pending_plan_approval
- MODIFY `src/tunacode/ui/repl_support.py` - remove PendingPlanApprovalState
- MODIFY `src/tunacode/ui/welcome.py` - remove /plan mention
- MODIFY `src/tunacode/core/state.py` - remove plan_mode, plan_approval_callback

**Acceptance Tests:**
- App starts without plan-related attributes
- /plan command no longer available
- Welcome message doesn't mention /plan

---

### Task 5: Remove Types, Constants & Update Docs (M5)
**Summary:** Clean up type definitions and documentation
**Owner:** agent
**Dependencies:** Task 4
**Files:**
- MODIFY `src/tunacode/types/callbacks.py` - remove PlanApprovalCallback
- MODIFY `src/tunacode/types/state.py` - remove PlanSessionProtocol, PlanApprovalProtocol
- MODIFY `src/tunacode/types/__init__.py` - remove planning exports
- MODIFY `src/tunacode/constants.py` - remove EXIT_PLAN_MODE_SENTINEL, update READ_ONLY_TOOLS
- MODIFY `docs/codebase-map/modules/types.md`
- MODIFY `docs/codebase-map/modules/ui-overview.md`
- MODIFY `docs/codebase-map/structure/02-core-directory.md`
- MODIFY `docs/codebase-map/structure/tree-structure.txt`

**Acceptance Tests:**
- No orphaned type exports
- Documentation accurate
- Full test suite passes

---

## Risks & Mitigations

| Risk | Impact | Likelihood | Mitigation | Trigger |
|------|--------|------------|------------|---------|
| Hidden dependency on planning | High | Low | Research doc is comprehensive | Import error during deletion |
| Merge conflicts with master | Medium | Low | Working on dedicated branch | Rebase before merge |
| Type errors cascade | Medium | Medium | Delete in dependency order | Mypy fails after deletion |

## Test Strategy

- Run `uv run pytest` after each task to catch regressions immediately
- One verification run of full test suite at end
- No new tests needed (deleting feature, not adding)

## References

- Research doc: `memory-bank/research/2026-01-26_planning-feature-deletion.md`
- Main tool: `src/tunacode/tools/present_plan.py`
- UI panel: `src/tunacode/ui/plan_approval.py`
- Authorization: `src/tunacode/tools/authorization/rules.py`

## Tickets Created (max 5)

| Ticket ID | Title | Priority | Status |
|-----------|-------|----------|--------|
| tun-2ef4 | Delete standalone planning files (tests, prompts, UI panel) | 1 | open |
| tun-6d0a | Remove present_plan tool registration and delete tool | 1 | open |
| tun-0de7 | Remove authorization layer planning references | 2 | open |
| tun-216b | Remove UI command and state references | 2 | open |
| tun-4014 | Remove planning types, constants, and update docs | 2 | open |

## Dependencies

```
tun-2ef4 (Phase 1: Delete standalone files)
    └── tun-6d0a (Phase 2: Remove tool registration)
        └── tun-0de7 (Phase 3: Authorization layer)
            └── tun-216b (Phase 4: UI command/state)
                └── tun-4014 (Phase 5: Types/constants/docs)
```

Files in this skill

  • README.md1.2 KB
  • skill.md6.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.