<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://futurewithml.netlify.app/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;futurewithml.netlify.app</tabi:base_url>
        <tabi:separator>
            |
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It&#x27;s free.</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>Productivity</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="https://futurewithml.netlify.app/skins/cyber.css?h=eb029a27afbc61465b52" /><title>Future With ML - Productivity</title>
        <subtitle>Machine Learning Design Patterns, MLOps, and AI Engineering insights by Christian Picon Calderon</subtitle>
    <link href="https://futurewithml.netlify.app/tags/productivity/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://futurewithml.netlify.app/tags/productivity/" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2026-01-06T10:00:00+00:00</updated><id>https://futurewithml.netlify.app/tags/productivity/atom.xml</id><entry xml:lang="en">
        <title>Claude Code Plugin Journey Part 0: Agent Team Creator</title>
        <published>2026-01-06T10:00:00+00:00</published>
        <updated>2026-01-06T10:00:00+00:00</updated>
        <author>
            <name>Christian Picon Calderon</name>
        </author>
        <link rel="alternate" href="https://futurewithml.netlify.app/posts/claude-code-plugin-journey-part0/" type="text/html"/>
        <id>https://futurewithml.netlify.app/posts/claude-code-plugin-journey-part0/</id>
        
            <content type="html">&lt;h1 id=&quot;claude-code-plugin-journey-part-0-agent-team-creator&quot;&gt;Claude Code Plugin Journey Part 0: Agent Team Creator&lt;&#x2F;h1&gt;
&lt;p&gt;What if you could point an AI at your project and have it generate specialists who actually understand your stack? Not generic assistants—agents that know your architecture, your patterns, your conventions.&lt;&#x2F;p&gt;
&lt;p&gt;That’s what &lt;code&gt;agent-team-creator&lt;&#x2F;code&gt; does. Let me show you the workflow.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;scenario-1-generate-your-agent-team&quot;&gt;Scenario 1: Generate Your Agent Team&lt;&#x2F;h2&gt;
&lt;p&gt;You start a new project—or join an existing one. The codebase is unfamiliar. You need help, but generic AI advice isn’t cutting it.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Generate your agent team&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&#x2F;generate-agent-team
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Watch as the plugin analyzes your project:&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Analyzing codebase...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Languages: Python (75%), TypeScript (20%), SQL (5%)
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Frameworks: FastAPI, React, SQLAlchemy
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Architecture: Monorepo with backend&#x2F;frontend split
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Patterns: Repository pattern, dependency injection
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Generating specialized agents...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;✓ fastapi-expert
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  Knows: Your endpoint patterns, Pydantic models, middleware stack
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;✓ react-specialist
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  Knows: Your component library, state management, hook patterns
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;✓ database-architect
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  Knows: Your SQLAlchemy models, migration patterns, query conventions
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;✓ test-strategist
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  Knows: Your pytest fixtures, mocking patterns, test utilities
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Team saved to .claude&#x2F;agents&#x2F;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Use your agents immediately&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now you have project-aware specialists. Here’s how to use them:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Ask about architecture:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the fastapi-expert agent to explain how authentication
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;works in this project
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Implement a feature:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the react-specialist agent to help me add a new dashboard
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;component following our existing patterns
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Debug an issue:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the database-architect agent to help me understand why
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;this query is slow - check src&#x2F;repositories&#x2F;user_repo.py
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Write tests:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the test-strategist agent to write integration tests for
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;the new payment endpoint following our test conventions
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;The difference?&lt;&#x2F;strong&gt; These agents don’t give generic advice. They reference &lt;em&gt;your&lt;&#x2F;em&gt; files, &lt;em&gt;your&lt;&#x2F;em&gt; patterns, &lt;em&gt;your&lt;&#x2F;em&gt; conventions.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;scenario-2-advanced-debugging-workflow&quot;&gt;Scenario 2: Advanced Debugging Workflow&lt;&#x2F;h2&gt;
&lt;p&gt;After you’ve generated your agent team, you can create a &lt;strong&gt;Project Debugger&lt;&#x2F;strong&gt;—an orchestrator that coordinates your specialists to diagnose complex issues.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Generate the Project Debugger&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&#x2F;generate-debugger
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Discovering project agents...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Found: fastapi-expert, react-specialist, database-architect, test-strategist
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Analyzing project architecture...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Entry points identified
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Error handling patterns mapped
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Logging conventions detected
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Generating project-debugger.md...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;✓ Created: .claude&#x2F;agents&#x2F;project-debugger.md
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  - Orchestrates your 4 specialist agents
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  - Produces structured debugging reports
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  - Identifies root causes with file:line references
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Use the Debugger to investigate&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;When you hit a bug, invoke the project debugger:&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the project-debugger agent to investigate: Users are
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;getting 500 errors when submitting the checkout form
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The debugger orchestrates your specialists:&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Consulting fastapi-expert...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Traced request flow through api&#x2F;routes&#x2F;checkout.py
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Found: PaymentService.process() raises unhandled exception
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Consulting database-architect...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Checked transaction handling in repositories&#x2F;order_repo.py
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Found: Missing rollback on payment failure
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Consulting test-strategist...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Reviewed test coverage for checkout flow
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Found: No test for payment failure scenario
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Generating debugging report...
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Step 3: Generate a debugging report&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The debugger produces a structured report saved to &lt;code&gt;.claude&#x2F;reports&#x2F;debugging&#x2F;&lt;&#x2F;code&gt; :&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;markdown&quot; class=&quot;language-markdown z-code&quot;&gt;&lt;code class=&quot;language-markdown&quot; data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-block-level z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-heading z-1 z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-heading z-begin z-markdown&quot;&gt;#&lt;&#x2F;span&gt; &lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-heading z-1 z-markdown&quot;&gt;&lt;span class=&quot;z-entity z-name z-section z-markdown&quot;&gt;Debugging Report: Checkout 500 Errors&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-whitespace z-newline z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-block-level z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-heading z-begin z-markdown&quot;&gt;##&lt;&#x2F;span&gt; &lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-entity z-name z-section z-markdown&quot;&gt;Root Cause&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-whitespace z-newline z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-markdown&quot;&gt;Missing exception handling in PaymentService.process()
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-markdown&quot;&gt;(src&#x2F;services&#x2F;payment.py:45) combined with missing
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-markdown&quot;&gt;transaction rollback (src&#x2F;repositories&#x2F;order_repo.py:78)
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-block-level z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-heading z-begin z-markdown&quot;&gt;##&lt;&#x2F;span&gt; &lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-entity z-name z-section z-markdown&quot;&gt;Evidence&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-whitespace z-newline z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-bullet z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;-&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt; &lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;File: src&#x2F;services&#x2F;payment.py:45-52
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-bullet z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;-&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt; File: src&#x2F;repositories&#x2F;order_repo.py:78-85
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-bullet z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;-&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt; Missing test: tests&#x2F;integration&#x2F;test_checkout.py
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-block-level z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-heading z-begin z-markdown&quot;&gt;##&lt;&#x2F;span&gt; &lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-entity z-name z-section z-markdown&quot;&gt;Recommended Fix&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-whitespace z-newline z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-numbered z-bullet z-markdown&quot;&gt;1&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt; &lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;Add try&#x2F;except in payment.py:45
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-numbered z-bullet z-markdown&quot;&gt;2&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt; Implement rollback in order_repo.py:78
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-numbered z-bullet z-markdown&quot;&gt;3&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt; Add failure scenario test
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;&lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-numbered z-markdown&quot;&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-block-level z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-heading z-begin z-markdown&quot;&gt;##&lt;&#x2F;span&gt; &lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-heading z-2 z-markdown&quot;&gt;&lt;span class=&quot;z-entity z-name z-section z-markdown&quot;&gt;Side Effects&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-whitespace z-newline z-markdown&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-html z-markdown&quot;&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-bullet z-markdown&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-list_item z-markdown&quot;&gt;-&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-markup z-list z-unnumbered z-markdown&quot;&gt; &lt;span class=&quot;z-meta z-paragraph z-list z-markdown&quot;&gt;Orders may be in inconsistent state (needs migration)
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Step 4: Create a Jira ticket from the report&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Now turn that report into a Jira task. The command automatically finds the most recent debugging report:&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&#x2F;generate-jira-task
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Finding latest debugging report...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Found: .claude&#x2F;reports&#x2F;debugging&#x2F;report-2026-01-06-1430.md
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Loading debugging report...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Checking for similar issues...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Searching: &amp;quot;checkout payment exception rollback&amp;quot;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;├── Found 2 potentially related issues:
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  PROJ-234: &amp;quot;Payment processing timeout errors&amp;quot;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;           Status: In Progress
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  PROJ-189: &amp;quot;Checkout form validation issues&amp;quot;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;           Status: Done
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;How would you like to proceed?
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&amp;gt; Create new task anyway
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&amp;gt; Abort - I&amp;#39;ll update an existing issue
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;If you choose to create a new task:&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Creating Jira issue...
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;✓ Created: PROJ-456 &amp;quot;Fix checkout 500 errors: missing exception handling&amp;quot;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;  https:&#x2F;&#x2F;yourcompany.atlassian.net&#x2F;browse&#x2F;PROJ-456
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The duplicate check prevents cluttering your backlog with related issues. If the bug is a variant of an existing issue, you can update that ticket instead of creating a new one.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;No Jira configured?&lt;&#x2F;strong&gt; The command gracefully falls back to generating a ready-to-paste markdown file in &lt;code&gt;.claude&#x2F;reports&#x2F;jira-drafts&#x2F;&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;scenario-3-repeatable-workflow-for-multiple-bugs&quot;&gt;Scenario 3: Repeatable Workflow for Multiple Bugs&lt;&#x2F;h2&gt;
&lt;p&gt;Each bug investigation creates its own debugging report, which leads to its own Jira ticket. Here’s how the workflow scales across multiple issues:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Monday: API performance issue&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the project-debugger agent to investigate: Why are
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;API response times spiking during peak hours?
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Report saved: &lt;code&gt;.claude&#x2F;reports&#x2F;debugging&#x2F;report-2026-01-06-0900.md&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&#x2F;generate-jira-task
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Created: &lt;code&gt;PROJ-457 &quot;Optimize database connection pooling for peak load&quot;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;&lt;strong&gt;Tuesday: Frontend rendering bug&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the project-debugger agent to investigate: The dashboard
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;chart isn&amp;#39;t updating when new data arrives
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Report saved: &lt;code&gt;.claude&#x2F;reports&#x2F;debugging&#x2F;report-2026-01-07-1100.md&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&#x2F;generate-jira-task
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Created: &lt;code&gt;PROJ-458 &quot;Fix React state synchronization in DashboardChart component&quot;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;&lt;strong&gt;Wednesday: Authentication edge case&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;Use the project-debugger agent to investigate: Users are
&lt;&#x2F;span&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;being logged out randomly after password changes
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Report saved: &lt;code&gt;.claude&#x2F;reports&#x2F;debugging&#x2F;report-2026-01-08-1400.md&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;z-code&quot;&gt;&lt;code&gt;&lt;span class=&quot;z-text z-plain&quot;&gt;&#x2F;generate-jira-task
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Created: &lt;code&gt;PROJ-459 &quot;Handle session invalidation on password change correctly&quot;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Each investigation is independent. The debugger creates timestamped reports, and &lt;code&gt;&#x2F;generate-jira-task&lt;&#x2F;code&gt; always picks up the most recent one. Your debugging history accumulates in &lt;code&gt;.claude&#x2F;reports&#x2F;debugging&#x2F;&lt;&#x2F;code&gt;, giving you a searchable archive of past investigations.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;the-complete-workflow&quot;&gt;The Complete Workflow&lt;&#x2F;h2&gt;




&lt;div class=&quot;workflow-container&quot; id=&quot;workflow&quot;&gt;
    &lt;canvas class=&quot;workflow-canvas&quot; aria-label=&quot;Workflow visualization&quot;&gt;&lt;&#x2F;canvas&gt;
&lt;&#x2F;div&gt;

&lt;script&gt;
(function() {
    const containerId = &#x27;workflow&#x27;;

    &#x2F;&#x2F; Decode HTML entities (Tera encodes &#x2F; as &amp;#x2F;)
    function decodeHTML(str) {
        const textarea = document.createElement(&#x27;textarea&#x27;);
        textarea.innerHTML = str;
        return textarea.value;
    }

    const stepsData = [
        
        
        { title: decodeHTML(&#x27;&amp;#x2F;generate-agent-team&#x27;), desc: decodeHTML(&#x27;Creates specialist agents&#x27;) },
        
        
        { title: decodeHTML(&#x27;Use agents daily&#x27;), desc: decodeHTML(&#x27;fastapi-expert react-specialist&#x27;) },
        
        
        { title: decodeHTML(&#x27;&amp;#x2F;generate-debugger&#x27;), desc: decodeHTML(&#x27;Creates project-debugger&#x27;) },
        
        
        { title: decodeHTML(&#x27;Debug issues&#x27;), desc: decodeHTML(&#x27;Saves to .claude&amp;#x2F;reports&amp;#x2F;&#x27;) },
        
        
        { title: decodeHTML(&#x27;&amp;#x2F;generate-jira-task&#x27;), desc: decodeHTML(&#x27;Creates Jira ticket&#x27;) }
        
    ];

    function initWorkflow() {
        const container = document.getElementById(containerId);
        if (!container) return;

        const canvas = container.querySelector(&#x27;.workflow-canvas&#x27;);
        const ctx = canvas.getContext(&#x27;2d&#x27;);

        let particles = [];
        let time = 0;

        const colors = {
            primary: &#x27;#00d4ff&#x27;,
            secondary: &#x27;#8b5cf6&#x27;,
            accent: &#x27;#00ff88&#x27;,
            particle: &#x27;#00ff88&#x27;,
            connection: &#x27;rgba(0, 212, 255, 0.4)&#x27;,
            text: &#x27;#e0e0e4&#x27;,
            subtext: &#x27;#8888a0&#x27;
        };

        function resize() {
            const rect = container.getBoundingClientRect();
            canvas.width = rect.width;
            canvas.height = Math.max(550, stepsData.length * 130 + 100);
            container.style.height = canvas.height + &#x27;px&#x27;;
        }
        resize();
        window.addEventListener(&#x27;resize&#x27;, resize);

        function getStepPositions() {
            const centerX = canvas.width &#x2F; 2;
            const startY = 70;
            const stepHeight = 120;

            return stepsData.map((step, i) =&gt; ({
                ...step,
                x: centerX,
                y: startY + i * stepHeight,
                width: Math.min(450, canvas.width * 0.85),
                height: 90,
                color: i % 2 === 0 ? colors.primary : colors.secondary
            }));
        }

        function createParticle(from, to) {
            return {
                fromX: from.x,
                fromY: from.y + from.height &#x2F; 2,
                toX: to.x,
                toY: to.y - to.height &#x2F; 2,
                progress: Math.random(),
                speed: 0.008 + Math.random() * 0.004
            };
        }

        function draw() {
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            const positions = getStepPositions();

            &#x2F;&#x2F; Draw connections
            ctx.strokeStyle = colors.connection;
            ctx.lineWidth = 3;
            for (let i = 0; i &lt; positions.length - 1; i++) {
                const from = positions[i];
                const to = positions[i + 1];

                ctx.beginPath();
                ctx.moveTo(from.x, from.y + from.height &#x2F; 2);
                ctx.lineTo(to.x, to.y - to.height &#x2F; 2);
                ctx.stroke();

                &#x2F;&#x2F; Arrow
                const midY = (from.y + from.height &#x2F; 2 + to.y - to.height &#x2F; 2) &#x2F; 2;
                ctx.fillStyle = colors.connection;
                ctx.beginPath();
                ctx.moveTo(from.x - 6, midY - 4);
                ctx.lineTo(from.x, midY + 6);
                ctx.lineTo(from.x + 6, midY - 4);
                ctx.closePath();
                ctx.fill();
            }

            &#x2F;&#x2F; Draw step boxes
            positions.forEach((pos, i) =&gt; {
                const x = pos.x - pos.width &#x2F; 2;
                const y = pos.y - pos.height &#x2F; 2;

                &#x2F;&#x2F; Glow
                ctx.shadowColor = pos.color;
                ctx.shadowBlur = 20;

                &#x2F;&#x2F; Box with rounded corners
                ctx.fillStyle = pos.color;
                ctx.beginPath();
                const radius = 8;
                ctx.moveTo(x + radius, y);
                ctx.lineTo(x + pos.width - radius, y);
                ctx.quadraticCurveTo(x + pos.width, y, x + pos.width, y + radius);
                ctx.lineTo(x + pos.width, y + pos.height - radius);
                ctx.quadraticCurveTo(x + pos.width, y + pos.height, x + pos.width - radius, y + pos.height);
                ctx.lineTo(x + radius, y + pos.height);
                ctx.quadraticCurveTo(x, y + pos.height, x, y + pos.height - radius);
                ctx.lineTo(x, y + radius);
                ctx.quadraticCurveTo(x, y, x + radius, y);
                ctx.closePath();
                ctx.fill();

                ctx.shadowBlur = 0;

                &#x2F;&#x2F; Border
                ctx.strokeStyle = colors.accent;
                ctx.lineWidth = 2;
                ctx.stroke();

                &#x2F;&#x2F; Step number
                ctx.fillStyle = &#x27;#0a0a0f&#x27;;
                ctx.font = &#x27;bold 18px JetBrains Mono, monospace&#x27;;
                ctx.textAlign = &#x27;left&#x27;;
                ctx.textBaseline = &#x27;middle&#x27;;
                ctx.fillText((i + 1) + &#x27;.&#x27;, x + 16, pos.y);

                &#x2F;&#x2F; Title
                ctx.fillStyle = &#x27;#0a0a0f&#x27;;
                ctx.font = &#x27;bold 16px JetBrains Mono, monospace&#x27;;
                ctx.textAlign = &#x27;center&#x27;;
                ctx.fillText(pos.title, pos.x + 12, pos.y - 10);

                &#x2F;&#x2F; Description (if exists)
                if (pos.desc) {
                    ctx.fillStyle = &#x27;rgba(10, 10, 15, 0.8)&#x27;;
                    ctx.font = &#x27;14px JetBrains Mono, monospace&#x27;;
                    ctx.fillText(pos.desc, pos.x + 12, pos.y + 16);
                }
            });

            &#x2F;&#x2F; Update and draw particles
            particles.forEach(p =&gt; {
                p.progress += p.speed;
                if (p.progress &gt;= 1) {
                    p.progress = 0;
                }

                const ease = p.progress * p.progress * (3 - 2 * p.progress);
                const x = p.fromX + (p.toX - p.fromX) * ease;
                const y = p.fromY + (p.toY - p.fromY) * ease;

                ctx.fillStyle = colors.particle;
                ctx.shadowColor = colors.particle;
                ctx.shadowBlur = 12;
                ctx.beginPath();
                ctx.arc(x, y, 4, 0, Math.PI * 2);
                ctx.fill();
                ctx.shadowBlur = 0;
            });

            time++;
            requestAnimationFrame(draw);
        }

        &#x2F;&#x2F; Initialize particles
        const positions = getStepPositions();
        for (let i = 0; i &lt; positions.length - 1; i++) {
            const p = createParticle(positions[i], positions[i + 1]);
            p.progress = i * 0.3;
            particles.push(p);
        }

        if (!window.matchMedia(&#x27;(prefers-reduced-motion: reduce)&#x27;).matches) {
            draw();
        } else {
            &#x2F;&#x2F; Static version
            const positions = getStepPositions();
            positions.forEach((pos, i) =&gt; {
                const x = pos.x - pos.width &#x2F; 2;
                const y = pos.y - pos.height &#x2F; 2;

                ctx.fillStyle = pos.color;
                ctx.beginPath();
                ctx.roundRect(x, y, pos.width, pos.height, 8);
                ctx.fill();

                ctx.fillStyle = &#x27;#0a0a0f&#x27;;
                ctx.font = &#x27;bold 16px JetBrains Mono&#x27;;
                ctx.textAlign = &#x27;center&#x27;;
                ctx.fillText(pos.title, pos.x, pos.y);
            });
        }
    }

    if (document.readyState === &#x27;loading&#x27;) {
        document.addEventListener(&#x27;DOMContentLoaded&#x27;, initWorkflow);
    } else {
        initWorkflow();
    }
})();
&lt;&#x2F;script&gt;

&lt;style&gt;
.workflow-container {
    background: var(--bg-0);
    border: 1px solid var(--divider-color);
    border-radius: 12px;
    padding: 1rem;
    margin: 1.5rem 0;
    position: relative;
    min-height: 550px;
}

.workflow-canvas {
    width: 100%;
    display: block;
}

@media (max-width: 768px) {
    .workflow-container {
        padding: 0.5rem;
    }
}
&lt;&#x2F;style&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;quick-start&quot;&gt;Quick Start&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;installation&quot;&gt;Installation&lt;&#x2F;h3&gt;
&lt;p&gt;Install directly from the GitHub marketplace—no cloning required:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash z-code&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-comment z-line z-number-sign z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-begin z-shell&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment z-line z-number-sign z-shell&quot;&gt; Add the marketplace (one-time setup)&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment z-line z-number-sign z-shell&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;&#x2F;plugin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; marketplace add Cpicon&#x2F;claude-code-plugins&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;
&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-comment z-line z-number-sign z-shell&quot;&gt;&lt;span class=&quot;z-punctuation z-definition z-comment z-begin z-shell&quot;&gt;#&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment z-line z-number-sign z-shell&quot;&gt; Install the plugin&lt;&#x2F;span&gt;&lt;span class=&quot;z-comment z-line z-number-sign z-shell&quot;&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-source z-shell z-bash&quot;&gt;&lt;span class=&quot;z-meta z-function-call z-shell&quot;&gt;&lt;span class=&quot;z-variable z-function z-shell&quot;&gt;&#x2F;plugin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;span class=&quot;z-meta z-function-call z-arguments z-shell&quot;&gt; install agent-team-creator&lt;&#x2F;span&gt;
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;That’s it. The plugin is ready to use immediately.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;first-commands&quot;&gt;First Commands&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to your project&lt;&#x2F;li&gt;
&lt;li&gt;Run &lt;code&gt;&#x2F;generate-agent-team&lt;&#x2F;code&gt; to create your specialist agents&lt;&#x2F;li&gt;
&lt;li&gt;Start using your specialists: &lt;code&gt;Use the [agent-name] agent to...&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Run &lt;code&gt;&#x2F;generate-debugger&lt;&#x2F;code&gt; to create your project debugger&lt;&#x2F;li&gt;
&lt;li&gt;Use the debugger to investigate bugs: &lt;code&gt;Use the project-debugger agent to investigate...&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Run &lt;code&gt;&#x2F;generate-jira-task&lt;&#x2F;code&gt; to convert the debugging report to a ticket&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;what-you-get&quot;&gt;What You Get&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Command&lt;&#x2F;th&gt;&lt;th&gt;Output&lt;&#x2F;th&gt;&lt;th&gt;Value&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&#x2F;generate-agent-team&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;3-6 specialist agents&lt;&#x2F;td&gt;&lt;td&gt;Project-aware help for features, questions, debugging&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&#x2F;generate-debugger&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;Orchestrator agent&lt;&#x2F;td&gt;&lt;td&gt;Coordinates specialists for complex investigations&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&#x2F;generate-jira-task&lt;&#x2F;code&gt;&lt;&#x2F;td&gt;&lt;td&gt;Jira ticket or markdown&lt;&#x2F;td&gt;&lt;td&gt;Auto-finds latest report, creates actionable ticket&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h3 id=&quot;time-savings&quot;&gt;Time Savings&lt;&#x2F;h3&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Task&lt;&#x2F;th&gt;&lt;th&gt;Before&lt;&#x2F;th&gt;&lt;th&gt;After&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Get project-aware help&lt;&#x2F;td&gt;&lt;td&gt;N&#x2F;A (generic only)&lt;&#x2F;td&gt;&lt;td&gt;Immediate&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Debug complex issues&lt;&#x2F;td&gt;&lt;td&gt;Hours of investigation&lt;&#x2F;td&gt;&lt;td&gt;Structured reports&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Write Jira tickets&lt;&#x2F;td&gt;&lt;td&gt;15-30 min&lt;&#x2F;td&gt;&lt;td&gt;2-5 min&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;try-it-yourself&quot;&gt;Try It Yourself&lt;&#x2F;h2&gt;
&lt;p&gt;The plugin is open source and available on GitHub: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Cpicon&#x2F;claude-code-plugins&quot;&gt;Cpicon&#x2F;claude-code-plugins&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Install it with two commands, run &lt;code&gt;&#x2F;generate-agent-team&lt;&#x2F;code&gt;, and see what specialists emerge for your project.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;contributing-feedback&quot;&gt;Contributing &amp;amp; Feedback&lt;&#x2F;h3&gt;
&lt;p&gt;Have ideas for improvements? Found a bug? The &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Cpicon&#x2F;claude-code-plugins&#x2F;issues&quot;&gt;GitHub Issues&lt;&#x2F;a&gt; tab is where you can:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Request features&lt;&#x2F;strong&gt; — Suggest new capabilities or enhancements&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Report bugs&lt;&#x2F;strong&gt; — Help improve reliability by reporting issues you encounter&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Discuss improvements&lt;&#x2F;strong&gt; — Share ideas for plugin maintenance and development&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Your feedback shapes the plugin’s roadmap.&lt;&#x2F;p&gt;
&lt;p&gt;In &lt;a href=&quot;&#x2F;posts&#x2F;claude-code-plugin-journey-part1&#x2F;&quot;&gt;Part 1&lt;&#x2F;a&gt;, I’ll show you how I built this plugin—the bugs I hit, the patterns I discovered, and why the architecture works the way it does.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;&lt;strong&gt;Series Navigation:&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Part 0&lt;&#x2F;strong&gt; (You are here): What the plugin does and how to use it&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Part 1&lt;&#x2F;strong&gt;: &lt;a href=&quot;&#x2F;posts&#x2F;claude-code-plugin-journey-part1&#x2F;&quot;&gt;The Hybrid Architecture Pattern&lt;&#x2F;a&gt; — Building the plugin&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Part 2&lt;&#x2F;strong&gt;: &lt;a href=&quot;&#x2F;posts&#x2F;claude-code-plugin-journey-part2&#x2F;&quot;&gt;The Inheritance Paradox&lt;&#x2F;a&gt; — Research insights&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        <summary type="html">Claude Code Plugin Journey Part 0: Agent Team Creator
What if you could point an AI at your project and have it generate specialists who actually understand your stack? Not generic assistants—agents that know your architecture, your patterns, your conventions.
That’s what agent-team-creator does. Let me show you the workflow.
…</summary>
        </entry>
</feed>
