-
Notifications
You must be signed in to change notification settings - Fork 13
Skill for completing tech breakdowns #148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
trmartin4
wants to merge
64
commits into
main
Choose a base branch
from
tech-breakdown-complete-skill
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
64 commits
Select commit
Hold shift + click to select a range
6bdf7ca
Initial skils for new breakdown.
trmartin4 988130c
PR feedback.
trmartin4 2957433
Clarifications on gate.
trmartin4 6e39f15
PR feedback.
trmartin4 65fee3b
Allowing MCP for querying Jira.
trmartin4 566b8cd
PR feedback.
trmartin4 f52c99b
Extract developing-the-plan skill from tech-breakdown-skill-updates
trmartin4 8859c5d
Added breakdown plan skill.
trmartin4 b9ae00d
Added new task skill.
trmartin4 da2d16c
More explicitly handle reading content.
trmartin4 23e1928
Remove skill created during evaluation.
trmartin4 f523aa4
PR feedback
trmartin4 e8ab115
Enhancements.
trmartin4 6f73126
Removed specific reference to Spec-Kit.
trmartin4 f0fb11d
Cleaned up process flow.
trmartin4 d3743c2
PR feedback.
trmartin4 dda75aa
Remove spec-kit reference
trmartin4 2f25608
Removed "the" from skill names.
trmartin4 f89a12b
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 cf7ce16
Remove "the" from skill name.
trmartin4 dfb3d47
Removed duplicate folder.
trmartin4 95fa9ba
Removing Spec-Kit, again.
trmartin4 13c8aa6
Updates to task skill.
trmartin4 5b30416
Updated to use folder structure to support separate files for tasks.
trmartin4 16f4eae
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 5bd0a70
Updated wording.
trmartin4 3133bdb
Prompt for breakdown location.
trmartin4 29980e7
Added orientation requirement.
trmartin4 f3051b6
Updated with orientation.
trmartin4 1dd89dd
Added required tools.
trmartin4 573c5d8
PR feedback.
trmartin4 018d320
Added plan skill reference.
trmartin4 e5b78b9
PR feedback.
trmartin4 7d71286
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 26b4e6b
Updated template reference.
trmartin4 66bbb7d
Merge branch 'tech-breakdown-spec-skill' into tech-breakdown-plan-skill
trmartin4 03be9e7
Merge branch 'tech-breakdown-plan-skill' into tech-breakdown-tasks-skill
trmartin4 dcbadea
Cleanup.
trmartin4 0aa8a7b
Linting and diagram consolidation.
trmartin4 baa47ca
More additional words.
trmartin4 b25da12
PR recommendations.
trmartin4 48df024
Fixed spacing.
trmartin4 bc1f8d8
Merge branch 'tech-breakdown-plan-skill' into tech-breakdown-tasks-skill
trmartin4 1b4b6f6
Removed reference to model for collaboration.
trmartin4 18fa71e
Merge branch 'main' into tech-breakdown-plan-skill
trmartin4 5f19152
Architecting solutions changes.
trmartin4 7616ead
Merge branch 'tech-breakdown-plan-skill' into tech-breakdown-tasks-skill
trmartin4 ad817f2
Removed obsolete skills.
trmartin4 62b1e12
Fix incorrect references.
trmartin4 b8aa114
Merge branch 'main' into tech-breakdown-tasks-skill
trmartin4 45293c7
Removed worked example.
trmartin4 a34fb83
Code review feedback.
trmartin4 882fe63
Skill creator feedback.
trmartin4 01717d0
Removed unnecessary allowed tools.
trmartin4 198079b
Path changes.
trmartin4 3bf559b
Fix given/when/when order.
trmartin4 f4b4917
Completion skill.
trmartin4 75dabfa
Version updates.
trmartin4 51d4b19
Merge branch 'main' into tech-breakdown-complete-skill
trmartin4 3eb0afb
Removed duplicates
trmartin4 6a4ddc0
Fixed duplicates.
trmartin4 d8f1177
Fixed merge.
trmartin4 999fd1a
Fixed folder name.
trmartin4 f423f4a
PR feedback updates.
trmartin4 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75 changes: 75 additions & 0 deletions
75
plugins/bitwarden-delivery-tools/skills/completing-breakdown/SKILL.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| --- | ||
| name: completing-breakdown | ||
| description: Complete a Bitwarden Tech Breakdown. Use when a team has completed delivering the work captured in a Tech Breakdown. Triggered by phrasings such as "complete this breakdown", "mark the breakdown as done", "archive the breakdown", "move breakdown to complete", "finish the breakdown", "wrap up the breakdown". | ||
| argument-hint: "[<breakdown-path | jira-key | slug>]" | ||
| arguments: breakdown | ||
| allowed-tools: Read, Edit, Glob, Bash(git mv:*), Bash(git status:*), Bash(mkdir:*), AskUserQuestion | ||
| --- | ||
|
|
||
| # Completing a Tech Breakdown | ||
|
|
||
| ## Overview | ||
|
|
||
| Help the user retire a Tech Breakdown once the work it describes has shipped. | ||
|
|
||
| <HARD-GATE> | ||
| Orientation within a breakdown is required. If `$breakdown` was provided at invocation, treat it as the breakdown identifier (path, Jira key, or slug) and resolve it via `Glob` under `tech-breakdowns/` to a real `breakdown.md`, then confirm the resolved path with `AskUserQuestion` before proceeding. Otherwise, ask the user which breakdown to complete — they can give a path, a Jira key, or a slug — and resolve the same way. If the user already named it earlier in the conversation, confirm the resolved path with `AskUserQuestion` before proceeding. | ||
|
|
||
| Once the breakdown is found, do NOT update the Status or move the folder until both hold: | ||
|
|
||
| - The resolved folder is not already inside a `complete/` directory. If it is, surface that and stop — the breakdown is already archived. | ||
| - The working tree is clean (`git status` in the `tech-breakdowns` checkout shows no uncommitted changes that would be entangled with the move). If it is not clean, surface the dirty files and ask the user whether to proceed or stash first. | ||
|
|
||
| </HARD-GATE> | ||
|
|
||
| ## Key Principles | ||
|
|
||
| - **Status flip then move.** Update `breakdown.md` first so the commit that moves the folder also carries the terminal-state edit. Reversing the order leaves a window where the file is at its new path with stale status. | ||
| - **Preserve history.** Use `git mv` rather than `mv`. The breakdown folder's history is the design record; moving outside git rewrites it as a delete + add and breaks blame. | ||
| - **Don't touch sibling artifacts.** `tasks.md` and other files in the folder move with the folder unchanged. | ||
| - **Inform the use after move is complete.** The folder move is reversible but disruptive — links to the old path break. Surface the source path, destination path, and the affected files after doing the move so the user can revert if they did not intend to do so. | ||
|
|
||
| ## Phases | ||
|
|
||
| ### Phase 1: Resolve the breakdown | ||
|
|
||
| Use the orientation rules from the HARD-GATE to locate `<team>/<JIRA-KEY>-<short-slug>/breakdown.md` in the `tech-breakdowns` working copy. Record the resolved values: | ||
|
|
||
| - `BREAKDOWN_PATH` — absolute path to `breakdown.md`. | ||
| - `BREAKDOWN_FOLDER` — the parent folder. | ||
| - `TEAM_DIR` — the team directory (`BREAKDOWN_FOLDER`'s parent). | ||
| - `DEST_FOLDER` — `<TEAM_DIR>/complete/<JIRA-KEY>-<short-slug>/`. | ||
|
|
||
| **Validate before using in shell commands.** Slug must match `^[a-z][a-z0-9-]*$`. Jira key must match `^[A-Z][A-Z0-9]+-[0-9]+$`. Reject any resolved path that contains `..` or characters outside `[A-Za-z0-9._/-]`, and confirm `BREAKDOWN_FOLDER` and `DEST_FOLDER` resolve inside the `tech-breakdowns` working copy. If any check fails, stop and surface the mismatch — never interpolate a non-validated value into `mkdir`, `git mv`, or any other shell command. | ||
|
|
||
| Read `breakdown.md` and surface the current Status block to the user before proceeding. | ||
|
|
||
| ### Phase 2: Update the Status block | ||
|
|
||
| Edit `breakdown.md` in place. Update the Status block: | ||
|
|
||
| - `Status:` — `Complete` | ||
| - `Last substantive update:` — today's date + the literal note `breakdown completed` | ||
|
|
||
| Leave `Active owner / contact:` unchanged; the historical record should keep pointing at the engineer who ran the breakdown. | ||
|
|
||
| Do not edit the Spec, Plan, Tasks, or any other section. The breakdown's content is now the as-shipped record. | ||
|
|
||
| ### Phase 3: Move the folder | ||
|
|
||
| 1. Ensure the `complete/` directory exists under `TEAM_DIR`. `git mv` does not create missing parent directories — if `<TEAM_DIR>/complete/` does not exist yet, run `mkdir -p '<TEAM_DIR>/complete/'` first (single-quote the interpolated path). The first breakdown a team completes will hit this case. | ||
| 2. Run `git mv '<BREAKDOWN_FOLDER>' '<DEST_FOLDER>'` from inside the `tech-breakdowns` working copy — single-quote both operands so a path containing whitespace or shell metacharacters cannot word-split. This moves `breakdown.md`, `tasks.md`, and any sibling artifacts in one operation while preserving history. | ||
| 3. Surface the result to the user: | ||
| - Old path: `<team>/<JIRA-KEY>-<short-slug>/` | ||
| - New path: `<team>/complete/<JIRA-KEY>-<short-slug>/` | ||
| - Files moved: list from `git status`. | ||
|
|
||
| Leave the commit to the user — they may want to bundle the status flip + move with a referencing message (`PM-XXXXX: complete breakdown`) and push at their own cadence. | ||
|
|
||
| ## Output | ||
|
|
||
| When all phases are complete, tell the user: | ||
|
|
||
| 1. The new path of `breakdown.md` under the `complete/` subfolder. | ||
| 2. That the Status block now reads `Complete`. | ||
| 3. That the move is staged in git and waiting for them to commit. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.