Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
fae7598
Add Claude Code support and documentation for Conductor
jasonkneen Dec 19, 2025
73d5f29
Update README.md
jasonkneen Dec 19, 2025
391d656
fixes
jasonkneen Dec 19, 2025
776c02c
feat: add portable skill support for Claude CLI, OpenCode, and Codex
bardusco Dec 23, 2025
09d1ae6
fix: improve skill description and installer
bardusco Dec 23, 2025
42686b0
refactor: remove duplicate references, use symlinks to original files
bardusco Dec 23, 2025
8e1caf7
fix: add rule to avoid slash command suggestions
bardusco Dec 23, 2025
cbfe75f
conductor(setup): Add conductor setup files
edithatogo Dec 30, 2025
3157b96
conductor(plan): Mark task 'Create development branch' as complete
edithatogo Dec 30, 2025
ac8b01e
Merge pull request #9 into feature/foundation-core
edithatogo Dec 30, 2025
0458710
conductor(plan): Mark task 'Merge PR #9' as complete
edithatogo Dec 30, 2025
140a341
Merge pull request #25 into feature/foundation-core
edithatogo Dec 30, 2025
6b02fee
conductor(plan): Mark task 'Merge PR #25' as complete
edithatogo Dec 30, 2025
4c57b04
conductor(checkpoint): Checkpoint end of Phase 1: Preparation & PR In…
edithatogo Dec 30, 2025
50a1009
conductor(plan): Mark Phase 1 as complete
edithatogo Dec 30, 2025
70902eb
feat(core): Initialize conductor-core package structure
edithatogo Dec 30, 2025
96ca188
feat(core): Implement Pydantic data models for Tracks and Plans
edithatogo Dec 30, 2025
1ec3c5a
feat(core): Implement Jinja2-based PromptProvider
edithatogo Dec 30, 2025
3567e5e
feat(core): Implement GitService abstraction layer
edithatogo Dec 30, 2025
fe97257
test(core): Add coverage for checkout and merge in GitService
edithatogo Dec 30, 2025
2017ec5
conductor(checkpoint): Checkpoint end of Phase 2: Core Library Extrac…
edithatogo Dec 30, 2025
2c3f09f
conductor(plan): Mark Phase 2 as complete
edithatogo Dec 30, 2025
2159007
feat(gemini): Initialize conductor-gemini adapter skeleton
edithatogo Dec 30, 2025
4c37d5c
test(gemini): Add CLI routing tests for Gemini adapter
edithatogo Dec 30, 2025
244c7f6
feat(gemini): Implement functional CLI adapter and refactor setup com…
edithatogo Dec 30, 2025
74d7de4
feat(core): Add automated validation service for protocol consistency
edithatogo Dec 30, 2025
0bda5b0
conductor(plan): Mark Phase 3 complete (Automated)
edithatogo Dec 30, 2025
4060957
conductor(sync): Align all platforms with Core protocol templates
edithatogo Dec 30, 2025
2085cb7
feat(release): Configure GitHub Actions for VSIX and PyPI packaging
edithatogo Dec 30, 2025
abb3d98
feat(release): Add VSIX build script
edithatogo Dec 30, 2025
0eba9db
feat(release): Add PyPI build script
edithatogo Dec 30, 2025
fa4031e
feat(release): Add build scripts and VS Code scaffolding
edithatogo Dec 30, 2025
8ff888e
conductor(plan): Mark Phase 1 of Robustness track as complete
edithatogo Dec 30, 2025
ffd290e
feat(core): use Enums for Task and Track status
edithatogo Dec 30, 2025
64722c0
feat(core): implement ProjectManager service
edithatogo Dec 30, 2025
f0b2bbf
conductor(plan): Mark ProjectManager task as complete
edithatogo Dec 30, 2025
0d8bc3e
test(core): add edge case tests for GitService
edithatogo Dec 30, 2025
8bf9d9e
feat(core): add robust error handling to PromptProvider
edithatogo Dec 30, 2025
5efeabb
fix(gemini): fix CLI tests and ensure directory exists in create_track
edithatogo Dec 30, 2025
28733d4
feat(qwen): add qwen-extension.json configuration
edithatogo Dec 30, 2025
4850247
feat(vscode): configure extensionKind for remote development support
edithatogo Dec 30, 2025
7982d9c
conductor(plan): Mark Phase 3 complete (Automated)
edithatogo Dec 30, 2025
fa0f610
conductor(plan): Mark Phase 4 complete (Automated)
edithatogo Dec 30, 2025
a77b525
feat(core): add LSP feasibility study prototype
edithatogo Dec 30, 2025
2e24d81
feat(test): add E2E smoke test script
edithatogo Dec 30, 2025
e428b29
conductor(cleanup): archive robustness track
edithatogo Dec 30, 2025
19d5a7c
chore: ignore build artifacts
edithatogo Dec 30, 2025
31929a4
feat(gemini): Refactor status and implement commands using new core T…
edithatogo Dec 31, 2025
4dbcc8b
conductor(plan): Mark Phase 1 as complete
edithatogo Dec 31, 2025
bacb9bc
feat(vscode): Add setup, status, implement commands and implementation
edithatogo Dec 31, 2025
d976477
conductor(plan): Mark Phase 2 as complete
edithatogo Dec 31, 2025
227fb3a
feat(core): Robust ID generation, Git notes, and Task/Phase management
edithatogo Dec 31, 2025
3aaefa7
conductor(plan): Mark Phase 3 as complete
edithatogo Dec 31, 2025
66cab67
chore: Bump versions to 0.2.0 and update CHANGELOG
edithatogo Dec 31, 2025
ad9cd17
conductor(plan): Mark Phase 4 and track as complete
edithatogo Dec 31, 2025
517f971
docs(plan): Finalize all tracks and statuses for 0.2.0 release
edithatogo Dec 31, 2025
95d0f48
feat: Synchronize platforms, implement revert command, and verify build
edithatogo Dec 31, 2025
e3203ec
ci: Add CI workflow to run on push
edithatogo Dec 31, 2025
ad7ceff
ci: Install test dependencies
edithatogo Dec 31, 2025
fedb2ba
ci: Upgrade Node.js to 20 and use npm ci
edithatogo Dec 31, 2025
ae67880
ci: Upgrade Node.js to 20 in release workflow
edithatogo Dec 31, 2025
eb885c4
feat(skill): Add Codex as an installation target in the installer
edithatogo Dec 31, 2025
2e1d688
docs(track): audit skill artifact baseline
edithatogo Jan 1, 2026
ba91917
conductor(plan): complete skill artifact inventory
edithatogo Jan 1, 2026
1def185
docs(track): capture command syntax matrix
edithatogo Jan 1, 2026
77bc5f9
conductor(plan): complete command syntax inventory
edithatogo Jan 1, 2026
eab13cc
docs(track): summarize skill setup gaps
edithatogo Jan 1, 2026
6df72a5
conductor(plan): complete gap analysis
edithatogo Jan 1, 2026
5de5e94
conductor(checkpoint): Checkpoint end of Phase 1
edithatogo Jan 1, 2026
a069038
conductor(plan): mark phase 1 complete
edithatogo Jan 1, 2026
a8186ef
chore(skills): add initial manifest schema
edithatogo Jan 1, 2026
eaacb0b
conductor(plan): complete manifest schema
edithatogo Jan 1, 2026
081f1f1
docs(track): outline generation targets
edithatogo Jan 1, 2026
02ea301
conductor(plan): complete generation targets
edithatogo Jan 1, 2026
5ba0b4a
docs(track): outline validation strategy
edithatogo Jan 1, 2026
fd32dd1
conductor(plan): complete validation strategy
edithatogo Jan 1, 2026
95d8dbb
conductor(checkpoint): Checkpoint end of Phase 2
edithatogo Jan 1, 2026
8c7e95d
conductor(plan): mark phase 2 complete
edithatogo Jan 1, 2026
5a8c4f9
test(skills): add manifest generation tests
edithatogo Jan 1, 2026
30609ba
conductor(plan): complete manifest tests
edithatogo Jan 1, 2026
47c4349
feat(skills): load manifest for sync generation
edithatogo Jan 1, 2026
3252f4a
conductor(plan): complete manifest-driven sync
edithatogo Jan 1, 2026
9173dcf
feat(skills): sync extension manifests
edithatogo Jan 1, 2026
b053b76
conductor(plan): complete extension manifest sync
edithatogo Jan 1, 2026
4e8eda3
feat(skills): guard template rendering
edithatogo Jan 1, 2026
13e686b
conductor(plan): complete protocol guard
edithatogo Jan 1, 2026
ca3043d
conductor(checkpoint): Checkpoint end of Phase 3
edithatogo Jan 1, 2026
94639e5
conductor(plan): mark phase 3 complete
edithatogo Jan 1, 2026
8ec6e38
test(skills): add installer and validator checks
edithatogo Jan 1, 2026
5133b5e
conductor(plan): complete installer test setup
edithatogo Jan 1, 2026
95ecee2
feat(install): add non-interactive options
edithatogo Jan 1, 2026
0c3f9c1
conductor(plan): complete installer UX
edithatogo Jan 1, 2026
f8016ca
feat(skills): add manifest validation
edithatogo Jan 1, 2026
34a5773
conductor(plan): complete validation tooling
edithatogo Jan 1, 2026
e824ff8
conductor(checkpoint): Checkpoint end of Phase 4
edithatogo Jan 1, 2026
505d5e1
conductor(plan): mark phase 4 complete
edithatogo Jan 1, 2026
5b48ca4
docs: add tool command syntax guide
edithatogo Jan 1, 2026
a8d390f
conductor(plan): complete docs update
edithatogo Jan 1, 2026
fc09aa9
feat(skills): add sync check script
edithatogo Jan 1, 2026
f9f2dd1
conductor(plan): complete sync check
edithatogo Jan 1, 2026
8c1fba9
conductor(checkpoint): Checkpoint end of Phase 5
edithatogo Jan 1, 2026
2954603
conductor(plan): mark phase 5 complete
edithatogo Jan 1, 2026
02ac280
conductor(skip): manual verification skipped
edithatogo Jan 1, 2026
976adbc
conductor(plan): record manual verification skip
edithatogo Jan 1, 2026
a95bcde
conductor(tracks): complete skills setup review
edithatogo Jan 1, 2026
4bfd3f8
conductor(archive): archive skills setup review
edithatogo Jan 1, 2026
9aa148e
fix(skills): align generated outputs
edithatogo Jan 1, 2026
92c0f27
fix(ci): align templates and dependencies
edithatogo Jan 1, 2026
b0e009b
fix(templates): align docs and sync outputs
edithatogo Jan 1, 2026
6759bd3
fix: address review feedback and cleanup
edithatogo Jan 1, 2026
32b246d
chore(core): add lsp dependencies
edithatogo Jan 1, 2026
e771327
fix: polish setup and new track templates
edithatogo Jan 1, 2026
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
14 changes: 14 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "conductor-marketplace",
"owner": {
"name": "Gemini CLI Extensions",
"url": "https://github.com/gemini-cli-extensions"
},
"plugins": [
{
"name": "conductor",
"source": "./",
"description": "Context-driven development: specs, plans, tracks, and TDD workflows"
}
]
}
22 changes: 22 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "conductor",
"version": "0.2.0",
"description": "Context-driven development for Claude Code. Plan before you build with specs, tracks, and TDD workflows.",
"author": {
"name": "Gemini CLI Extensions",
"url": "https://github.com/gemini-cli-extensions"
},
"homepage": "https://github.com/gemini-cli-extensions/conductor",
"repository": "https://github.com/gemini-cli-extensions/conductor",
"license": "Apache-2.0",
"keywords": [
"conductor",
"context-driven-development",
"specs",
"plans",
"tracks",
"tdd",
"workflow",
"project-management"
]
}
176 changes: 176 additions & 0 deletions .claude/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
# Conductor for Claude Code

Context-driven development for AI coding assistants. **Measure twice, code once.**

Conductor helps you plan before you build - creating specs, implementation plans, and tracking progress through "tracks" (features, bugs, improvements).

## Installation

### Option 1: Claude Code Plugin (Recommended)

```bash
# Add the marketplace
/plugin marketplace add gemini-cli-extensions/conductor

# Install the plugin
/plugin install conductor

# Verify installation
/help
```

This installs:
- **5 slash commands** for direct invocation
- **1 skill** that auto-activates for conductor projects

### Option 2: Agent Skills Compatible CLI

If your CLI supports the [Agent Skills specification](https://agentskills.io):

```bash
# Point to the skill directory
skills/conductor/
├── SKILL.md
└── references/
└── workflows.md
```

The skill follows the Agent Skills spec with full frontmatter:
- `name`: conductor
- `description`: Context-driven development methodology
- `license`: Apache-2.0
- `compatibility`: Claude Code, Gemini CLI, any Agent Skills compatible CLI
- `metadata`: version, author, repository, keywords

### Option 3: Manual Installation

Copy to your project:
```bash
cp -r /path/to/conductor/.claude your-project/
```

Or for global access (all projects):
```bash
cp -r /path/to/conductor/.claude/commands/* ~/.claude/commands/
```

### Option 4: Gemini CLI

If using Gemini CLI instead of Claude Code:
```bash
gemini extensions install https://github.com/gemini-cli-extensions/conductor
```

## Commands

| Command | Description |
|---------|-------------|
| `/conductor-setup` | Initialize project with product.md, tech-stack.md, workflow.md |
| `/conductor-newtrack [desc]` | Create new feature/bug track with spec and plan |
| `/conductor-implement [id]` | Execute tasks from track's plan (TDD workflow) |
| `/conductor-status` | Display progress overview |
| `/conductor-revert` | Git-aware revert of tracks, phases, or tasks |

## Skill (Auto-Activation)

The conductor skill automatically activates when Claude detects:
- A `conductor/` directory in the project
- References to tracks, specs, plans
- Context-driven development keywords

You can also use natural language:
- "Help me plan the authentication feature"
- "What's the current project status?"
- "Set up this project with Conductor"
- "Create a spec for the dark mode feature"

## How It Works

### 1. Setup
Run `/conductor-setup` to initialize your project with:
```
conductor/
├── product.md # What you're building and for whom
├── tech-stack.md # Technology choices and constraints
├── workflow.md # Development standards (TDD, commits)
└── tracks.md # Master list of all work items
```

### 2. Create Tracks
Run `/conductor-newtrack "Add user authentication"` to create:
```
conductor/tracks/auth_20241219/
├── metadata.json # Track type, status, dates
├── spec.md # Requirements and acceptance criteria
└── plan.md # Phased implementation plan
```

### 3. Implement
Run `/conductor-implement` to execute the plan:
- Follows TDD: Write tests → Implement → Refactor
- Commits after each task with conventional messages
- Updates plan.md with progress and commit SHAs
- Verifies at phase completion

### 4. Track Progress
Run `/conductor-status` to see:
- Overall project progress
- Current active track and task
- Next actions needed

## Status Markers

Throughout conductor files:
- `[ ]` - Pending/New
- `[~]` - In Progress
- `[x]` - Completed (with commit SHA)

## Gemini CLI Interoperability

Projects work with both Gemini CLI and Claude Code:

| Gemini CLI | Claude Code |
|------------|-------------|
| `/conductor:setup` | `/conductor-setup` |
| `/conductor:newTrack` | `/conductor-newtrack` |
| `/conductor:implement` | `/conductor-implement` |
| `/conductor:status` | `/conductor-status` |
| `/conductor:revert` | `/conductor-revert` |

Same `conductor/` directory structure, full compatibility.

## File Structure

```
conductor/ # This repository
├── .claude-plugin/
│ ├── plugin.json # Claude Code plugin manifest
│ └── marketplace.json # Marketplace registration
├── commands/ # Claude Code slash commands (.md)
│ ├── conductor-setup.md
│ ├── conductor-newtrack.md
│ ├── conductor-implement.md
│ ├── conductor-status.md
│ ├── conductor-revert.md
│ └── conductor/ # Gemini CLI commands (.toml)
├── skills/conductor/ # Agent Skills spec compatible
│ ├── SKILL.md # Main skill definition
│ └── references/
│ └── workflows.md # Detailed workflow docs
├── templates/ # Shared templates
│ ├── workflow.md
│ └── code_styleguides/
└── .claude/ # Manual install package
├── commands/
└── skills/conductor/
```

## Links

- [GitHub Repository](https://github.com/gemini-cli-extensions/conductor)
- [Agent Skills Specification](https://agentskills.io)
- [Gemini CLI Extensions](https://geminicli.com/docs/extensions/)

## License

Apache-2.0
167 changes: 167 additions & 0 deletions .claude/commands/conductor-implement.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
## 1.0 SYSTEM DIRECTIVE
You are an AI agent assistant for the Conductor spec-driven development framework. Your current task is to implement a track. You MUST follow this protocol precisely.

CRITICAL: You must validate the success of every tool call. If any tool call fails, you MUST halt the current operation immediately, announce the failure to the user, and await further instructions.

---

## 1.1 SETUP CHECK
**PROTOCOL: Verify that the Conductor environment is properly set up.**

1. **Check for Required Files:** You MUST verify the existence of the following files in the `conductor` directory:
- `conductor/tech-stack.md`
- `conductor/workflow.md`
- `conductor/product.md`

2. **Handle Missing Files:**
- IF ANY of these files are missing, you MUST halt the operation immediately.
- Announce: "Conductor is not set up. Please run `/conductor:setup` to set up the environment."
- Do NOT proceed to Track Selection.

---

## 2.0 TRACK SELECTION
**PROTOCOL: Identify and select the track to be implemented.**

1. **Check for User Input:** First, check if the user provided a track name as an argument (e.g., `/conductor:implement <track_description>`).

2. **Parse Tracks File:** Read and parse the tracks file at `conductor/tracks.md`. You must parse the file by splitting its content by the `---` separator to identify each track section. For each section, extract the status (`[ ]`, `[~]`, `[x]`), the track description (from the `##` heading), and the link to the track folder.
- **CRITICAL:** If no track sections are found after parsing, announce: "The tracks file is empty or malformed. No tracks to implement." and halt.

3. **Continue:** Immediately proceed to the next step to select a track.

4. **Select Track:**
- **If a track name was provided:**
1. Perform an exact, case-insensitive match for the provided name against the track descriptions you parsed.
2. If a unique match is found, confirm the selection with the user: "I found track '<track_description>'. Is this correct?"
3. If no match is found, or if the match is ambiguous, inform the user and ask for clarification. Suggest the next available track as below.
- **If no track name was provided (or if the previous step failed):**
1. **Identify Next Track:** Find the first track in the parsed tracks file that is NOT marked as `[x] Completed`.
2. **If a next track is found:**
- Announce: "No track name provided. Automatically selecting the next incomplete track: '<track_description>'."
- Proceed with this track.
3. **If no incomplete tracks are found:**
- Announce: "No incomplete tracks found in the tracks file. All tasks are completed!"
- Halt the process and await further user instructions.

5. **Handle No Selection:** If no track is selected, inform the user and await further instructions.

---

## 3.0 TRACK IMPLEMENTATION
**PROTOCOL: Execute the selected track.**

1. **Announce Action:** Announce which track you are beginning to implement.

2. **Update Status to 'In Progress':**
- Before beginning any work, you MUST update the status of the selected track in the `conductor/tracks.md` file.
- This requires finding the specific heading for the track (e.g., `## [ ] Track: <Description>`) and replacing it with the updated status (e.g., `## [~] Track: <Description>`).

3. **Load Track Context:**
a. **Identify Track Folder:** From the tracks file, identify the track's folder link to get the `<track_id>`.
b. **Read Files:** You MUST read the content of the following files into your context using full paths relative to the repository root:
- `conductor/tracks/<track_id>/plan.md`
- `conductor/tracks/<track_id>/spec.md`
- `conductor/workflow.md`
c. **Error Handling:** If you fail to read any of these files, you MUST stop and inform the user of the error.

4. **Execute Tasks and Update Track Plan:**
a. **Announce:** State that you will now execute the tasks from the track's `plan.md` by following the procedures in `workflow.md`.
b. **Iterate Through Tasks:** You MUST now loop through each task in the track's `plan.md` one by one.
c. **For Each Task, You MUST:**
i. **Defer to Workflow:** The `workflow.md` file is the **single source of truth** for the entire task lifecycle. You MUST now read and execute the procedures defined in the "Task Workflow" section of the `workflow.md` file you have in your context. Follow its steps for implementation, testing, and committing precisely.

5. **Finalize Track:**
- After all tasks in the track's local `plan.md` are completed, you MUST update the track's status in the tracks file.
- This requires finding the specific heading for the track (e.g., `## [~] Track: <Description>`) and replacing it with the completed status (e.g., `## [x] Track: <Description>`).
- Announce that the track is fully complete and the tracks file has been updated.

---

## 4.0 SYNCHRONIZE PROJECT DOCUMENTATION
**PROTOCOL: Update project-level documentation based on the completed track.**

1. **Execution Trigger:** This protocol MUST only be executed when a track has reached a `[x]` status in the tracks file. DO NOT execute this protocol for any other track status changes.

2. **Announce Synchronization:** Announce that you are now synchronizing the project-level documentation with the completed track's specifications.

3. **Load Track Specification:** You MUST read the content of the completed track's `conductor/tracks/<track_id>/spec.md` file into your context.

4. **Load Project Documents:** You MUST read the contents of the following project-level documents into your context:
- `conductor/product.md`
- `conductor/product-guidelines.md`
- `conductor/tech-stack.md`

5. **Analyze and Update:**
a. **Analyze `spec.md`:** Carefully analyze the `spec.md` to identify any new features, changes in functionality, or updates to the technology stack.
b. **Update `conductor/product.md`:**
i. **Condition for Update:** Based on your analysis, you MUST determine if the completed feature or bug fix significantly impacts the description of the product itself.
ii. **Propose and Confirm Changes:** If an update is needed, generate the proposed changes. Then, present them to the user for confirmation:
> "Based on the completed track, I propose the following updates to `product.md`:"
> ```diff
> [Proposed changes here, ideally in a diff format]
> ```
> "Do you approve these changes? (yes/no)"
iii. **Action:** Only after receiving explicit user confirmation, perform the file edits to update the `conductor/product.md` file. Keep a record of whether this file was changed.
c. **Update `conductor/tech-stack.md`:**
i. **Condition for Update:** Similarly, you MUST determine if significant changes in the technology stack are detected as a result of the completed track.
ii. **Propose and Confirm Changes:** If an update is needed, generate the proposed changes. Then, present them to the user for confirmation:
> "Based on the completed track, I propose the following updates to `tech-stack.md`:"
> ```diff
> [Proposed changes here, ideally in a diff format]
> ```
> "Do you approve these changes? (yes/no)"
iii. **Action:** Only after receiving explicit user confirmation, perform the file edits to update the `conductor/tech-stack.md` file. Keep a record of whether this file was changed.
d. **Update `conductor/product-guidelines.md` (Strictly Controlled):**
i. **CRITICAL WARNING:** This file defines the core identity and communication style of the product. It should be modified with extreme caution and ONLY in cases of significant strategic shifts, such as a product rebrand or a fundamental change in user engagement philosophy. Routine feature updates or bug fixes should NOT trigger changes to this file.
ii. **Condition for Update:** You may ONLY propose an update to this file if the track's `spec.md` explicitly describes a change that directly impacts branding, voice, tone, or other core product guidelines.
iii. **Propose and Confirm Changes:** If the conditions are met, you MUST generate the proposed changes and present them to the user with a clear warning:
> "WARNING: The completed track suggests a change to the core product guidelines. This is an unusual step. Please review carefully:"
> ```diff
> [Proposed changes here, ideally in a diff format]
> ```
> "Do you approve these critical changes to `product-guidelines.md`? (yes/no)"
iv. **Action:** Only after receiving explicit user confirmation, perform the file edits. Keep a record of whether this file was changed.

6. **Final Report:** Announce the completion of the synchronization process and provide a summary of the actions taken.
- **Construct the Message:** Based on the records of which files were changed, construct a summary message.
- **Example (if product.md was changed, but others were not):**
> "Documentation synchronization is complete.
> - **Changes made to `product.md`:** The user-facing description of the product was updated to include the new feature.
> - **No changes needed for `tech-stack.md`:** The technology stack was not affected.
> - **No changes needed for `product-guidelines.md`:** Core product guidelines remain unchanged."
- **Example (if no files were changed):**
> "Documentation synchronization is complete. No updates were necessary for `product.md`, `tech-stack.md`, or `product-guidelines.md` based on the completed track."

---

## 5.0 TRACK CLEANUP
**PROTOCOL: Offer to archive or delete the completed track.**

1. **Execution Trigger:** This protocol MUST only be executed after the current track has been successfully implemented and the `SYNCHRONIZE PROJECT DOCUMENTATION` step is complete.

2. **Ask for User Choice:** You MUST prompt the user with the available options for the completed track.
> "Track '<track_description>' is now complete. What would you like to do?
> A. **Archive:** Move the track's folder to `conductor/archive/` and remove it from the tracks file.
> B. **Delete:** Permanently delete the track's folder and remove it from the tracks file.
> C. **Skip:** Do nothing and leave it in the tracks file.
> Please enter the letter of your choice (A, B, or C)."

3. **Handle User Response:**
* **If user chooses "A" (Archive):**
i. **Create Archive Directory:** Check for the existence of `conductor/archive/`. If it does not exist, create it.
ii. **Archive Track Folder:** Move the track's folder from `conductor/tracks/<track_id>` to `conductor/archive/<track_id>`.
iii. **Remove from Tracks File:** Read the content of `conductor/tracks.md`, remove the entire section for the completed track (the part that starts with `---` and contains the track description), and write the modified content back to the file.
iv. **Announce Success:** Announce: "Track '<track_description>' has been successfully archived."
* **If user chooses "B" (Delete):**
i. **CRITICAL WARNING:** Before proceeding, you MUST ask for a final confirmation due to the irreversible nature of the action.
> "WARNING: This will permanently delete the track folder and all its contents. This action cannot be undone. Are you sure you want to proceed? (yes/no)"
ii. **Handle Confirmation:**
- **If 'yes'**:
a. **Delete Track Folder:** Permanently delete the track's folder from `conductor/tracks/<track_id>`.
b. **Remove from Tracks File:** Read the content of `conductor/tracks.md`, remove the entire section for the completed track, and write the modified content back to the file.
c. **Announce Success:** Announce: "Track '<track_description>' has been permanently deleted."
- **If 'no' (or anything else)**:
a. **Announce Cancellation:** Announce: "Deletion cancelled. The track has not been changed."
* **If user chooses "C" (Skip) or provides any other input:**
* Announce: "Okay, the completed track will remain in your tracks file for now."
Loading