Skip to content

feat: add tech-breakdown-template skills to delivery-tools#118

Merged
withinfocus merged 7 commits into
mainfrom
feat/tech-breakdown-skills
May 19, 2026
Merged

feat: add tech-breakdown-template skills to delivery-tools#118
withinfocus merged 7 commits into
mainfrom
feat/tech-breakdown-skills

Conversation

@withinfocus
Copy link
Copy Markdown
Contributor

🎟️ Tracking

Engineering management published a standardized Tech Breakdown Template (Confluence page 2920349776, currently version 16) as the canonical artifact for capturing a feature's technical design before implementation. This PR brings that template into Claude Code so the tech-lead and software-engineer agents reach for a consistent workflow instead of re-deriving the template from memory.

📔 Objective

Add two new agent-neutral skills to bitwarden-delivery-tools and wire both the bitwarden-tech-lead and bitwarden-software-engineer agents to use them:

  • writing-tech-breakdowns — drafts the engineering content of the breakdown (Parts 1, 2, 4, 5, 6 — problem overview, scope checklist for DB/API/UI/SDK/services/hosting/feature flags/security/testing/tech debt/dev environment, specification artifacts, open questions, AI context) plus the IN PLANNING → PROPOSED → ACCEPTED → COMPLETE status lifecycle.
  • coordinating-cross-team-breakdown — Part 3 signoff table, the cross-team checklist (mobile changes, components outside the team's domain, dependencies on other teams' services, APIs built for other teams), and the completion-communication checklist (post to #team-eng-tech-breakdowns, contact QA, contact refinement facilitator, verify all signoffs).

Both skills follow the established lifecycle-skill pattern in this plugin: SKILL.md describes the workflow, and the canonical template is fetched on demand via get_confluence_page against page 2920349776 rather than being forked into the repo. This matches navigating-the-initiative-funnel and running-work-transitions and avoids drift from a Confluence page that's already on version 16.

Funnel integration (bidirectional)

Both new skills explicitly invoke Skill(navigating-the-initiative-funnel) as a load-bearing first step when the breakdown sits under a BW Initiative — so the breakdown process pulls the shepherd, the affected-teams list, sibling teams' epics, and the architecture plan from the funnel rather than reconstructing them. The funnel skill is updated reciprocally to point at the two new skills at Phase 4 (Scoping & Commitment) and in its Related block.

Agent updates

  • bitwarden-tech-lead/AGENT.md — new Orientation bullet dispatches to Skill(writing-tech-breakdowns) and Skill(coordinating-cross-team-breakdown) for Tech Breakdown work; the delivery-lifecycle line in Cross-Plugin Integration is extended to list both new skills alongside the existing funnel and work-transitions skills.
  • bitwarden-software-engineer.md — new "Planning and Coordination" section, parallel in shape to the existing "Security-Aware Development" section, directing the agent to draft a Tech Breakdown before non-trivial implementation work and to run the cross-team coordination skill when the breakdown affects other teams. Marked optional ("if the plugin is unavailable, proceed with your standard workflow") to match the existing cross-plugin convention.

Version bumps

  • bitwarden-delivery-tools 1.1.0 → 1.2.0 (MINOR — two new skills, funnel skill updated, plugin description and keywords extended)
  • bitwarden-tech-lead 2.1.0 → 2.2.0 (MINOR — agent dispatch additions)
  • bitwarden-software-engineer 0.4.1 → 0.5.0 (MINOR — new "Planning and Coordination" section)

All three CHANGELOG.md files updated; marketplace.json and root README catalog updated by the bump script; delivery-tools README's skills table gained a new "Technical design" section with both new skills and two new usage examples.

Notes for reviewers

  • The skills are deliberately agent-neutral. They address the author obliquely ("the engineer drafting the breakdown") rather than tech-lead-specifically, matching the funnel/transitions skills' tone. The "Who Drafts a Tech Breakdown" section in writing-tech-breakdowns explicitly names both engineer-led and tech-lead-led patterns.
  • Cross-plugin references to Skill(architecting-solutions) (which lives in bitwarden-tech-lead) are qualified with the plugin name to avoid dead references when the software-engineer agent reaches for these skills.
  • The status lifecycle is documented once in writing-tech-breakdowns; the coordination skill points back at it rather than re-encoding the state machine.
  • Validation: npm run lint clean, validate-plugin-structure.sh clean for all three plugins, validate-marketplace.sh clean. The plugin-dev:plugin-validator and plugin-dev:skill-reviewer agents were run; reviewer suggestions on cross-plugin qualifiers and agent-neutral tone were applied.
  • signoffs was added to .cspell.json (the singular signoff was already accepted by dictionary fallthrough; the plural was flagged).

Bring Bitwarden's Tech Breakdown Template (Confluence page 2920349776)
into Claude Code as two new agent-neutral skills in
`bitwarden-delivery-tools`:

- `writing-tech-breakdowns` — drafts Parts 1, 2, 4, 5, 6 of the standard
  template plus the IN PLANNING → PROPOSED → ACCEPTED → COMPLETE status
  lifecycle.
- `coordinating-cross-team-breakdown` — Part 3 signoff table, cross-team
  checklist, and completion-communication checklist that closes a
  breakdown.

Both skills cross-reference `navigating-the-initiative-funnel` as a
load-bearing first step when the breakdown sits under a BW Initiative,
so the breakdown process pulls the shepherd, affected-teams list, and
architecture-plan context directly from the funnel. The funnel skill is
updated reciprocally to point at the two new skills at Phase 4 and in
its Related block.

Both the bitwarden-tech-lead and bitwarden-software-engineer agents are
updated to dispatch to the new skills — the tech-lead via its
Orientation and Cross-Plugin Integration sections, the software-engineer
via a new "Planning and Coordination" section parallel to its existing
"Security-Aware Development" section.

Version bumps: bitwarden-delivery-tools 1.1.0 → 1.2.0,
bitwarden-tech-lead 2.1.0 → 2.2.0, bitwarden-software-engineer
0.4.1 → 0.5.0.
@withinfocus withinfocus added the ai-review Request a Claude code review label May 13, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 13, 2026

Plugin Validation Summary — PR #118

All three validation passes (plugin structure, skill quality, security/credentials) completed cleanly. No critical or major issues. Two minor headroom notes recorded.

Plugins validated

Plugin Version Marketplace match Plugin manifest Components Verdict
bitwarden-delivery-tools 1.2.0 ✅ (marketplace.json:81) 8 skills, 3 changed Pass
bitwarden-tech-lead 2.3.0 ✅ (marketplace.json:67–71) 1 agent, 2 skills Pass

Both plugin descriptions are identical between plugin.json and the marketplace entry, version strings match across plugin.json / marketplace.json / CHANGELOG.md, and both changelogs follow Keep a Changelog format with dated entries that accurately describe the diff.


1. Plugin structure (plugin-validator)

bitwarden-delivery-tools — Pass

  • plugin.json valid JSON, required fields present, semver compliant.
  • 8 skill directories under skills/; all have well-formed YAML frontmatter with name matching directory name.
  • coordinating-cross-team-breakdown/SKILL.md:36 references ${CLAUDE_PLUGIN_ROOT}/skills/coordinating-cross-team-breakdown/examples/signoff-table.md — file exists (8395 bytes).
  • Cross-skill Skill(...) references all resolve (intra-plugin and to bitwarden-tech-lead / bitwarden-security-engineer).
  • No agents/, commands/, hooks/, or .mcp.json — consistent with the stated "skills only" scope.
  • CHANGELOG.md [1.2.0] - 2026-05-13 entry correctly categorizes the two new skills under Added and the funnel pointer update under Changed.

bitwarden-tech-lead — Pass

  • plugin.json valid JSON, required fields present, semver compliant (2.3.0, MINOR bump appropriate for the redefinition without breaking the agent's callable name).
  • agents/AGENT.md frontmatter: name: bitwarden-tech-lead (19 chars, kebab-case), model: opus, color: cyan, tools: Read, Write, Glob, Grep, Skill, skills: [architecting-solutions, contributing-to-technical-strategy] — both skill directories exist.
  • Description block (AGENT.md:3–40) contains four well-formed <example> blocks, each with Context / user / assistant / <commentary> — covering team-scope planning, EM scoping partnership, cross-team conduit, and upstream-pattern recognition.
  • System prompt (AGENT.md:49–83) ~2,400 chars, structured around the three canonical relationships (team / peer tech leads / EM).
  • CHANGELOG.md [2.3.0] - 2026-05-19 entry describes the agent realignment, example replacements, orientation block reduction, and description rewrite — matches the actual diff.

2. Skill review (skill-reviewer)

Skill Word count Frontmatter Description Referenced files Verdict
coordinating-cross-team-breakdown (new) ~2,100 ✅ specific triggers examples/signoff-table.md resolves Pass
navigating-the-initiative-funnel (modified) ~1,680 ✅ (long but specific) none on-disk Pass
writing-tech-breakdowns (new) ~2,803 ✅ specific triggers none on-disk Pass
  • All three SKILL.md files declare allowed-tools scoped to Skill + read-only Atlassian MCP tools (get_issue, search_confluence, etc.) — principle of least privilege applied.
  • Writing style is imperative/infinitive throughout.
  • Cross-skill composition is clean: state machine owned by writing-tech-breakdowns, Part 3 / completion-communication owned by coordinating-cross-team-breakdown, funnel phases owned by navigating-the-initiative-funnel. No duplication; all cross-references use Skill(...) notation and name the source plugin when crossing plugin boundaries.

Minor notes (warnings, not errors):

  • navigating-the-initiative-funnel/SKILL.md:3 — description is ~480 chars, near the 500-char soft cap. Not a defect; the four explicit "when…" triggers earn the length. If further triggers are added later, consider trimming the leading "Phase-by-phase guidance for…" frame.
  • writing-tech-breakdowns/SKILL.md — 2,803 words is near the 3,000-word ceiling for a core SKILL.md. If future edits expand the content (e.g., a worked Part 4 example), consider extracting Part 2's scope checklist into references/scope-checklist.md to keep the core lean. Today the content is dense but coherent and doesn't fragment naturally.

3. Security / config review

  • Credential scan: Grep across both plugin directories for api_key|password|secret|token|bearer|credential|BEGIN (RSA|PRIVATE)|AKIA|ghp_|sk_live_|xoxb- returned no hardcoded secrets. The one match (AGENT.md:26) is the literal word "tokens" in an illustrative example user message — false positive.
  • Permission scoping: No settings.json, settings.local.json, hook files, or .mcp.json were changed. The only permission-adjacent fields are allowed-tools declarations in three SKILL.md frontmatter blocks; all are scoped to Skill plus read-only Atlassian MCP tools, which is appropriate.
  • Dangerous auto-approvals: None — no settings files in the diff.
  • File access permissions: No changes to tools: lists beyond the existing AGENT.md (Read, Write, Glob, Grep, Skill), which is conservatively scoped (no Bash, no Edit) for an advisory tech-lead agent.
  • External references: All hyperlinks in the changed files use HTTPS; canonical Confluence pages (page IDs 584515614, 2920349776, 2521038855) are referenced as the source of truth and fetched on demand via get_confluence_page rather than reproduced.

Files scanned

  • plugins/bitwarden-delivery-tools/.claude-plugin/plugin.json
  • plugins/bitwarden-delivery-tools/CHANGELOG.md
  • plugins/bitwarden-delivery-tools/README.md
  • plugins/bitwarden-delivery-tools/skills/coordinating-cross-team-breakdown/SKILL.md
  • plugins/bitwarden-delivery-tools/skills/coordinating-cross-team-breakdown/examples/signoff-table.md
  • plugins/bitwarden-delivery-tools/skills/navigating-the-initiative-funnel/SKILL.md
  • plugins/bitwarden-delivery-tools/skills/writing-tech-breakdowns/SKILL.md
  • plugins/bitwarden-tech-lead/.claude-plugin/plugin.json
  • plugins/bitwarden-tech-lead/CHANGELOG.md
  • plugins/bitwarden-tech-lead/agents/AGENT.md
  • .claude-plugin/marketplace.json (consistency cross-check)

Overall

PASS — both plugins, all three changed skills, and the agent redefinition validate cleanly. No remediation required. Two minor notes recorded for future-edit awareness only.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 13, 2026

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

This PR introduces two new bitwarden-delivery-tools skills (writing-tech-breakdowns and coordinating-cross-team-breakdown) tied to Bitwarden's standardized Tech Breakdown Template, wires the funnel skill to point at them bidirectionally, and realigns the bitwarden-tech-lead agent around its canonical Team Tech Lead relationships (team, peer tech leads, EM) rather than around participation in a specific workflow. Versions, CHANGELOGs, marketplace.json, and README catalog entries are consistent across the three updated artifacts. Cross-plugin skill references (architecting-solutions, contributing-to-technical-strategy, bitwarden-security-context, reviewing-security-architecture, threat-modeling, researching-jira-issues) all resolve to existing skills, and the new lifecycle string includes IN PROGRESS consistently across the description, body, and sibling skills. Prior reviewer feedback on default-behavior framing and verbose descriptions appears to be addressed in the most recent commits.

Code Review Details

No new code-level findings beyond the open reviewer threads already on this PR.

PR Metadata Assessment

  • QUESTION: The PR description's "Version bumps" and "Agent updates" sections are out of sync with the current change set.
    • Description states bitwarden-tech-lead bumps 2.1.0 → 2.2.0, but plugin.json and marketplace.json now show 2.3.0.
    • Description describes a new "Planning and Coordination" section in bitwarden-software-engineer.md and a 0.4.1 → 0.5.0 bump, but no bitwarden-software-engineer files are in the PR's file list. Refreshing the description (or noting that the software-engineer changes were pulled out in response to review) would help future readers reconstruct intent.

Apply three cheap fixes flagged by the plugin validator on PR #118, plus
add a worked example of the Part 3 signoff table for users:

- Promote `REJECTED` from a `###` heading nested under
  completion-communication to its own `##` heading in
  `coordinating-cross-team-breakdown` — it's a sibling terminal state
  to `COMPLETE`, not a sub-step of completion comms.
- Disambiguate the security-engineer skill references in
  `writing-tech-breakdowns` Part 2 to match the
  `(in the <plugin-name> plugin)` parenthetical convention used
  elsewhere for cross-plugin references.
- Expand the status-lifecycle summary phrasing in the delivery-tools
  CHANGELOG and README to include `IN PROGRESS` and `REJECTED`
  (previously listed only the four happy-path states; SKILL.md
  documents all six).
- Add `examples/signoff-table.md` to `coordinating-cross-team-breakdown`
  showing an in-flight and a fully-signed-off Part 3 table for an
  illustrative feature. The signoff table is the skill's primary
  artifact and the canonical Confluence page has no worked example.

No version bump — these are documentation/clarity fixes within an
unreleased PR.
Comment thread plugins/bitwarden-delivery-tools/skills/writing-tech-breakdowns/SKILL.md Outdated
Two follow-ups from the second validator run on PR #118:

- Add `IN PROGRESS` to the `writing-tech-breakdowns` frontmatter
  description so it matches the body (which defines all six states)
  and the sibling docs (delivery-tools CHANGELOG and README, which
  were aligned in the previous commit). The frontmatter description
  is what Claude reads for skill matching; dropping a state weakens
  dispatch on prompts like "move the breakdown to IN PROGRESS."
- Add `tech-breakdown` and `planning` keywords to the
  `bitwarden-software-engineer` plugin manifest so the new 0.5.0
  Planning and Coordination dispatch behavior is discoverable from
  marketplace search.
Comment thread plugins/bitwarden-delivery-tools/skills/navigating-the-initiative-funnel/SKILL.md Outdated
@withinfocus withinfocus marked this pull request as ready for review May 13, 2026 17:12
@withinfocus withinfocus requested a review from a team as a code owner May 13, 2026 17:12
Resolve conflicts from main bumps that landed alongside this branch:

- `bitwarden-software-engineer` 0.4.1 → 0.4.2 on main (#122 added
  `dotnet format` to server verification). This branch bumps to 0.5.0
  (new Planning and Coordination section + keywords); 0.5.0 supersedes
  0.4.2 and the 0.4.2 entry is preserved as a historical CHANGELOG
  block under the 0.5.0 entry.
- `bitwarden-tech-lead` 2.1.0 → 2.1.1 on main (#116 added `<example>`
  blocks to the agent description and a "Related plugins" pointer to
  the new bitwarden-shepherd plugin). This branch bumps to 2.2.0 (new
  Tech Breakdown dispatch rules); 2.2.0 supersedes 2.1.1 and the
  2.1.1 entry is preserved as a historical CHANGELOG block. Main's
  agent-description `<example>` blocks auto-merged with this branch's
  Orientation and Cross-Plugin Integration additions.
- `bitwarden-code-review` 1.10.1 → 1.11.0 on main (#96 multi-agent
  code review). No conflict with this branch; pulled in via merge.
- New `bitwarden-shepherd` 1.0.0 plugin on main (#116). Added its
  catalog row to the root README and kept main's marketplace entry.
- `marketplace.json` metadata.version 1.0.1 → 1.1.0 on main; kept.
- `.cspell.json` auto-merged (this branch's `signoffs` entry sits
  alongside main's new entries — `Rescope`, `rustdoc`, `SDLC`,
  `tarpit`, `touchpoint`).

All version-bump validation passes against the new main: delivery-tools
1.1.0 → 1.2.0, software-engineer 0.4.2 → 0.5.0, tech-lead 2.1.1 → 2.2.0.
Lint, plugin-structure, and marketplace validators all clean.
Comment on lines +11 to +19
## When to Reach for This Skill

Three triggers:

1. **The breakdown has reached `PROPOSED`** in `Skill(writing-tech-breakdowns)`. Parts 1, 2, 4, 5 are drafted; the team has reviewed internally. Now affected teams need to be identified, the signoff table needs to be built, and signoffs need to be chased.
2. **A signoff has stalled** or an affected team has surfaced an interface concern. Coordination work continues until the breakdown moves to `ACCEPTED`.
3. **Implementation has shipped** and the breakdown is ready to move to `COMPLETE`. The completion-communication checklist is the closing ritual.

Don't reach for this skill while the breakdown is still `IN PROGRESS` — cross-team review on a half-drafted doc wastes the affected teams' time and yields signoffs nobody trusts.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ The user or agent should have already invoked this skill when it is needed by the time this is read. It's not necessary to reiterate when (not) to use this because it will have already been consumed. The only value I could see from this direction is if the skill is invoked at the wrong time, which is indicative of a separate problem that needs to be addressed outside of the skill.


When the `bitwarden-delivery-tools` plugin is installed, additional planning and coordination skills are available:

- **Before starting non-trivial implementation work** → activate `Skill(writing-tech-breakdowns)` to draft or update the team's Tech Breakdown for the change (Parts 1, 2, 4, 5, 6 of the Bitwarden template — problem framing, scope checklist, specification artifacts, open questions, AI context) so design decisions are captured before code lands.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭 This feels out of place. I think it should be part of the funnel workflow, or left up to the user. Not baked into this agent as default behavior. What I don't want, as a user, is for Claude to think the work I just assigned it needs extra technical breakdown when I don't want or need it to do that. If I, as a user, want this agent to produce a tech-breakdown I would instruct it to do so as part of my workflow.

- Team-level problem → stay in-team and apply `Skill(architecting-solutions)`.
- Initiative epic (from a shepherd, or one you're shepherding) → invoke `Skill(navigating-the-initiative-funnel)` (lives in `bitwarden-delivery-tools`).
- Transition in either direction (your team taking on work, or handing off framework, tooling, or patterns it built) → invoke `Skill(running-work-transitions)` (lives in `bitwarden-delivery-tools`).
- Drafting or updating the Tech Breakdown for the team's epic (problem framing, scope checklist, specification artifacts, status lifecycle) → invoke `Skill(writing-tech-breakdowns)` (lives in `bitwarden-delivery-tools`); chain into `Skill(coordinating-cross-team-breakdown)` once the doc reaches PROPOSED and needs cross-team signoffs.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💭 Along the lines of my other comment in the engineer agent, "chain into coordinating-cross-team-breakdown" feels like forcing initiative funnel workflow as the default agent behavior instead of behavior only when participating in the funnel workflow.

The purpose of this agent is blurring to me. Is it to analyze requirements and produce a tech breakdown, or to follow the initiative funnel steps? Statements like "For most initiatives you are not the shepherd" are counter-intuitive. If the agent isn't commonly part of this workflow why is it mentioned here? I would expect the workflow to express how the agent behaves when working within it, not the other way around.

Another way to think about it, is like traditional dependency injection. Functions (skills and agents) should be provided the things (instruction) they need to operate within a specific context, not reach upwards or derive that context themselves.

@@ -0,0 +1,205 @@
---
name: writing-tech-breakdowns
description: Drafting the engineering content of a Bitwarden Tech Breakdown — Parts 1, 2, 4, 5, 6 of the standard template (problem overview, breakdown scope checklist, specification artifacts, open questions, AI context) plus the IN PLANNING → IN PROGRESS → PROPOSED → ACCEPTED → COMPLETE status lifecycle. Use when starting a new tech breakdown, filling in the scope checklist (DB/API/UI/SDK/services/hosting/feature flags/security/testing/tech debt/dev environment), drafting specification child pages, capturing open questions, or moving the doc between status states. Pair with `coordinating-cross-team-breakdown` for Part 3 signoffs and completion communication.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Can we trim description down to focus on the general purpose and leverage when_to_use for trigger examples? Something like...

description: Draft engineering work breakdowns following the Bitwarden Tech Breakdown template.
when_to_use: Breaking down functional requirements into technical implementation plans. Trigger on terms like, "break down ticket x", "analyze requirements in document y".

In my experience, since this is part of a larger workflow, you'll get better trigger reliability if this is referenced explicitly as a "next step" in said workflow(s). Verbose description and when_to_use get dropped when tool context limits are nearing, which can negatively impact implicit trigger rates. Keeping them both lean ensures we get the best of both worlds.

@@ -0,0 +1,205 @@
---
name: writing-tech-breakdowns
description: Drafting the engineering content of a Bitwarden Tech Breakdown — Parts 1, 2, 4, 5, 6 of the standard template (problem overview, breakdown scope checklist, specification artifacts, open questions, AI context) plus the IN PLANNING → IN PROGRESS → PROPOSED → ACCEPTED → COMPLETE status lifecycle. Use when starting a new tech breakdown, filling in the scope checklist (DB/API/UI/SDK/services/hosting/feature flags/security/testing/tech debt/dev environment), drafting specification child pages, capturing open questions, or moving the doc between status states. Pair with `coordinating-cross-team-breakdown` for Part 3 signoffs and completion communication.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⛏️ "Pair with..." reads like instruction that should be in the skill's body and/or in the coordinating-cross-team-breakdown skill's when_to_use field, not this skill's description.

Address SaintPatrck's review on PR #118: the consuming agents shouldn't
pre-commit to invoking the new Tech Breakdown skills as default
behavior. Skills are workflow-invoked tools, not self-injecting
defaults.

Changes:

- `coordinating-cross-team-breakdown/SKILL.md` — remove "When to Reach
  for This Skill" section. By the time the skill is read, it's already
  been invoked; meta-text about when (not) to invoke it doesn't serve
  the user. Aligns with `navigating-the-initiative-funnel` and
  `running-work-transitions`, neither of which has a when-to-invoke
  section.
- `writing-tech-breakdowns/SKILL.md:3` — trim description from ~620
  chars to ~330. Drop Parts/checklist enumerations and the trailing
  "Pair with..." pointer (instruction belongs in the body, not in the
  trigger surface). Per Patrick: verbose descriptions get dropped when
  context tightens, hurting trigger reliability.
- `coordinating-cross-team-breakdown/SKILL.md:3` — symmetric trim from
  ~720 chars to ~280.
- `navigating-the-initiative-funnel/SKILL.md:50` — add `IN PROGRESS`
  to the lifecycle string in the Phase 4 paragraph so it matches the
  body and sibling docs (bot-suggested fix).
- `bitwarden-software-engineer.md` — remove the entire "Planning and
  Coordination" section. Skills are discoverable via their
  descriptions; explicit listing turns optional capability into "by
  default, do this." Implementation work should not pre-commit to
  drafting a Tech Breakdown — that's a user-driven workflow decision.
- `bitwarden-tech-lead/AGENT.md` — remove the Orientation bullet that
  said "Drafting or updating the Tech Breakdown for the team's epic ...
  chain into `Skill(coordinating-cross-team-breakdown)`...". Same
  default-behavior critique. The Cross-Plugin Integration listing
  remains because it documents what's available, not what to dispatch.

Version impact:

- `bitwarden-software-engineer` reverted 0.5.0 → 0.4.2. With Planning
  and Coordination removed, the keywords additions are also reverted —
  no behavior change in this PR for that plugin.
- `bitwarden-tech-lead` 2.2.0 changelog entry rewritten to reflect
  that the change is documentation of available skills in the
  Cross-Plugin Integration section, not default-behavior dispatch.
- `bitwarden-delivery-tools` 1.2.0 unchanged — the changelog already
  framed the new skills as plugin additions, not as wiring into
  consuming agents.
Realign the bitwarden-tech-lead agent with the canonical Team Tech
Lead role from Confluence page 214041059, addressing SaintPatrck's
critique that the agent had become defined by its participation in
the Software Initiative Funnel rather than by what a tech lead
actually is.

The canonical role has three relationships:

- **To the team:** primary technical resource; knows the codebase or
  knows where to find answers; undertakes forward-thinking
  investigative work to remove current and future roadblocks; serves
  as conduit for cross-team decisions affecting how the team builds;
  has authority (backed by the EM) to enforce technical
  recommendations via PR reviews.
- **To peer tech leads:** maintains an open channel for architecture,
  design, and implementation discussions that challenge standard
  practices; advocates for groundbreaking changes the team's work
  introduces.
- **To the EM:** primary point of contact for initial scoping of
  backlog work and design sessions; sounding board for technical
  questions; partners on Tech Debt prioritization and sprint planning.

Changes:

- Frontmatter description rewritten around the three-relationship
  framing. Use cases enumerate the canonical responsibilities
  (in-team planning, EM partnership, cross-team conduit, upstream-
  pattern recognition) rather than funnel-specific workflows.
- Two of four `<example>` blocks replaced: the "receiving a
  shepherded epic" and "small-scope initiative I could shepherd"
  examples were removed, replaced with an EM-partnership scoping
  example and a cross-team-conduit example. Those funnel-specific
  capabilities are still present via the relevant skills but no
  longer define the agent.
- Body intro rewritten to lead with the three relationships. A new
  paragraph makes the architectural principle explicit: "those
  workflows orchestrate your participation; you do not orchestrate
  them." When a workflow needs the tech lead, the workflow brings
  context and tells the agent what's expected.
- "For most initiatives you are not the shepherd" decision tree
  removed. That was the source of Patrick's "purpose is blurring"
  concern — the agent should know what a tech lead is before knowing
  when a tech lead is not a shepherd.
- Orientation block reduced to the two genuinely tech-lead-owned
  skills (architecting-solutions, contributing-to-technical-strategy).
  Workflow-classification bullets (funnel epic, transition) removed —
  those workflows bring their own dispatch context.
- Cross-Plugin Integration framing tightened. Skills are now listed
  as "available across plugins, agent-neutral by design — a calling
  workflow (or the user) decides when to invoke them" rather than
  "load-bearing for any work that crosses teams."
- plugin.json and marketplace.json descriptions rewritten to match.

Version: 2.2.0 → 2.3.0 (minor — agent identity shift, no removed
capabilities).

Note for follow-up: Patrick's broader architectural direction is
that workflows should be defined as orchestration skills that
explicitly direct agent participation (a "plan-implement-review"
example was referenced). The agent redefinition in this commit is a
prerequisite to that pattern — agents need stable, role-grounded
identities before workflow skills can compose them. The orchestration-
skill work itself is out of scope here.
Trim verbose bullets and drop the literal Confluence page-ID reference;
the canonical role description lives in the agent file itself.
@withinfocus withinfocus requested a review from SaintPatrck May 19, 2026 19:50
Copy link
Copy Markdown
Contributor

@SaintPatrck SaintPatrck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for clearing some of that up. Left one question about the additional version bump.

"version": "2.1.1",
"description": "Tech lead agent for a Bitwarden product team. Architects solutions holistically with the architecture group, dispatches to delivery-lifecycle skills (initiative funnel, work transitions) when work crosses teams, and surfaces team patterns to the Technical Strategy Ideas backlog."
"version": "2.3.0",
"description": "Tech lead agent for a Bitwarden product team. The team's primary technical resource — architects solutions in the team's domain, partners with the EM on scoping and backlog, partners with peer tech leads on cross-team architecture, and serves as the team's conduit for cross-team technical decisions."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.3.0] - 2026-05-19
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❓ Is the additional version bump intentional?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, although perhaps moot. I wanted to show that the agent redefinition came in a subsequent minor change. It's one PR so 🤷 but if someone's reading it in a moment it could help.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, and sounds good.

@withinfocus withinfocus merged commit dacfbfa into main May 19, 2026
33 checks passed
@withinfocus withinfocus deleted the feat/tech-breakdown-skills branch May 19, 2026 20:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-review Request a Claude code review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants