Claude Skill

workflow-architect

Discover your actual workflow through conversation or observation, then generate a tailored skills bundle that encodes it as loadable agent skills with trigger conditions. Use when you want to understand your own process, formalize it, or share it with collaborators. Also use whe

LLM Mart · 0 points · 5 views 0 listing impressions 0 install-command copies

#workflow

Virus-scanned Reviewed automatically before listing.

Full trust report

Download magnus919-agent-skills-workflow-architect-d0edebb.zip · 54 KB
Part of magnus919/agent-skills — 145 skills

Install

skills CLI npx skills add https://github.com/magnus919/agent-skills/tree/main/workflow-architect
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install magnus919-agent-skills@llmmart
Git git clone https://github.com/magnus919/agent-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole magnus919/agent-skills collection as a plugin from our marketplace. Git is the plain clone.

README

Workflow Architect — Discover and Encode Your Actual Workflow

A meta-skill that helps you understand how you actually work, then generates a loadable skills bundle encoding your workflow as agent-triggerable skills. Turns implicit process into explicit, reusable capability.

Why Install This Skill

When your agent loads this skill, it becomes a process discovery specialist who can:

  • Discover your workflow — through active interview (8-15 guided questions) or passive observation (analyzing what you actually do)
  • Generate a skills bundle — loadable skills with trigger conditions that encode each phase of your workflow
  • Create a decision map — Mermaid flowchart visualizing your workflow as your agent sees it
  • Optionally set up a kanban board — if your workflow has a predictable linear path
  • Make it permanent — generated bundle is registered in your agent's skill system for future sessions

What You Get

Directory Purpose
SKILL.md Bundle umbrella — two modes: active interrogation or passive observation
skills/ 3 sub-skills: interviewer (active mode), observer (passive mode), bundle-builder (generation engine)
references/ Workflow archetypes library, trigger condition patterns, kanban decision criteria
templates/ 4 templates: skill skeleton, manifest, kanban setup, decision map
references/example-output/ Two worked examples: developer pipeline, developer triage

Two Modes

  • Active Interrogation — guided interview that asks structured questions and branches based on your answers.
  • Passive Observation — watches what you do in a session and infers your workflow patterns without interrupting.

Both modes feed into the bundle-builder, which generates the final skills bundle.

Triggers

Load this when you want to understand your own process, formalize a workflow, share it with collaborators, or give structure to a session that feels aimless.

Requirements

Hermes Agent (uses skill_view, memory, session context scanning, write_file for bundle generation). Output bundles are standard Agent Skills format.

Quick Start

Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.

Skill manifest

Workflow Architect

A meta-skill that helps you (and your agent) understand how you actually work. It discovers your workflow patterns through either active interrogation or passive observation, then generates a skills bundle — a set of loadable skills, each with trigger conditions, that encode your workflow so your agent can meet you where you are in every session.

What You Get

After running workflow-architect, you'll have a new bundle in your agent's skill directory containing:

  • Umbrella SKILL.md — the entry point that makes the bundle auto-detectable via trigger conditions in its description. Load it with skill_view(name='<bundle-name>') or let the agent discover it automatically when you say something matching its triggers.
  • Sub-skills — one per phase of your workflow, each with a description that tells the agent when to load it (e.g., "load this when the user starts their morning triage routine" or "use this when the user shifts into deep work mode")
  • A manifest — maps skill names to their trigger conditions, entry points, and transition signals
  • A decision map — Mermaid flowchart visualizing your workflow as the agent sees it
  • A kanban board (optional) — only included if your workflow follows a predictable linear path where WIP limits and lane transitions add value

The umbrella and sub-skills are registered via skill_manage(action='create') so they appear in skills_list() and are immediately loadable in future sessions.

Two Modes

Workflow-architect adapts to how you want to engage with it.

Mode 1: Active Interrogation (One-Shot)

When to use: You have a few minutes to talk through your process. This is the most thorough mode — the agent asks guided questions, branches based on your answers, and builds a model of your workflow turn by turn.

How to invoke:

/workflow-architect

The agent will guide you through a conversation of about 8-15 questions. Answer naturally — the skill adapts its probes based on what you say.

Mode 2: Passive Observation

When to use: You're already in a session doing real work and don't want to stop and reflect. Let this mode watch what you actually do, then infer the workflow pattern from your actions.

How to invoke:

/workflow-architect passive

The agent loads the observer skill silently. It does nothing until you say one of the trigger phrases below, at which point it scans the current session's message history and reconstructs your workflow from what happened.

Trigger phrases (say any of these to activate observation analysis):

  • "catalog my workflow"
  • "what's my workflow"
  • "analyze my process"
  • "figure out what I do"
  • "work it out from what I just did"

Limitation: Observation mode works best after a session with at least 20+ turns of substantive work. If the session context is too thin, the observer will suggest switching to active interrogation mode instead.

Loading Protocol

  1. Read this umbrella SKILL.md for context
  2. If active: load skills/interviewer/SKILL.md
  3. If passive: load skills/observer/SKILL.md
  4. After convergence: load skills/bundle-builder/SKILL.md to synthesize and write the output bundle. The bundle is written to ~/.hermes/skills/<category>/<bundle-name>/ — verify the umbrella loads with skill_view(name='<bundle-name>') and at least one sub-skill loads with skill_view(name='<bundle-name>-<phase-name>'). Tell the user where it landed, what skills it contains, and a trigger phrase they can use to enter the workflow.

What the Interview Builds

The interviewer (and observer, through inference) builds a structured model with these dimensions:

Dimension What it captures
Entry points How your sessions typically start
Phases The distinct modes or stages in your workflow
Branching signals What makes you go left vs right at each fork
Tool preferences What you reach for in each phase
Loop conditions What keeps you in a mode vs what kicks you out
Exit criteria How you know a session is done
Pain points What feels frictionful or inefficient

Environment

No environment variables required. State is stored via memory tool with the prefix workflow-architect:state: so it persists across turns during multi-turn interviews.

When not to use

Do not use this skill for one-off task help or when there is no repeatable multi-phase workflow worth capturing — a standalone skill is a better fit. If you already have a well-defined process and only need it packaged, generate the bundle directly rather than re-running an interview.

Prerequisites

This skill ships no scripts; it is a resource-based protocol carried by the files bundled with this SKILL.md:

  • Sub-skill protocols — skills/interviewer/SKILL.md (active interrogation), skills/observer/SKILL.md (passive observation), and skills/bundle-builder/SKILL.md (bundle synthesis and registration). Load them per the Loading Protocol above.
  • Reference patterns — references/workflow-archetypes.md (convergence-detection pattern library), references/trigger-condition-patterns.md (trigger-condition format spec), references/kanban-decision-criteria.md (when to include a kanban board), and references/example-output/ (worked example bundles: developer-triage, developer-pipeline-kanban).
  • Generation templates — templates/skill-skeleton.md, templates/manifest.yaml.tmpl, templates/decision-map.md.tmpl, templates/kanban-board-setup.sh.tmpl, and templates/kanban-task-blueprints.yaml.tmpl for the generated bundle's files.
  • Agent capabilities — the host agent needs skill management tools (skill_view, skill_manage, skills_list), a memory tool for workflow-architect:state: keys, session context access for observation mode, and file writing for bundle output.
  • A writable skills directory — generated bundles land in ~/.hermes/skills/<category>/<bundle-name>/; that location must be creatable and registrable.

Limitations

  • The output targets the Hermes-style skill runtime named in compatibility: bundles are standard Agent Skills, but registration via skill_manage(action='create') and the ~/.hermes/skills path assume that environment. On other runtimes, copy the bundle manually into the client's skill directory.
  • Passive observation reconstructs only what happened in the current session; with fewer than roughly 20 substantive turns it will under-infer and should fall back to active interrogation.
  • The generated workflow is only as good as what you say or do during discovery — phases, branching signals, and exit criteria are inferred from evidence, not invented, so thin input yields generic bundles.
  • Bundle generation writes new skill files and registers them; confirm scope before overwriting an existing bundle of the same name.
Files (agent-skills)
  • evals
    • evals.json 6.8 KB
      {
        "schema_version": 1,
        "skill_name": "workflow-architect",
        "evals": [
          {
            "id": "active-interview-convergence",
            "prompt": "/workflow-architect — I don't have a formal process for my mornings. Interview me to figure out my actual routine.",
            "expected_output": "Scenario: active interrogation mode. The agent loads skills/interviewer/SKILL.md and guides the user through 8-15 adaptive questions covering entry points, phases, branching signals, tool preferences, loop conditions, exit criteria, and pain points. The interviewer branches its probes on the user's answers, records workflow state under workflow-architect:state:, and converges when phases, branching signals, and tool preferences are stable. On convergence it loads skills/bundle-builder/SKILL.md to synthesize the bundle. The interview stops asking questions once convergence is reached rather than continuing indefinitely.",
            "assertions": [
              "skills/interviewer/SKILL.md is loaded in active mode",
              "The interview asks adaptive questions across entry points, phases, branching signals, tools, loops, exits, and pain points",
              "Probes branch based on the user's answers",
              "Workflow state is persisted under the workflow-architect:state: prefix",
              "Convergence triggers bundle-builder synthesis instead of unbounded questioning"
            ]
          },
          {
            "id": "passive-observation-trigger",
            "prompt": "I've been working in this session for a while. /workflow-architect passive — figure out what I do. (Then the user says 'analyze my process'.)",
            "expected_output": "Scenario: passive observation mode. The agent loads skills/observer/SKILL.md silently and does nothing until the trigger phrase ('analyze my process') appears, then scans the session context and reconstructs the workflow phases, branching signals, and tool preferences from what actually happened. If the session context is too thin (fewer than ~20 substantive turns), the observer recommends switching to active interrogation instead of fabricating a workflow from sparse evidence.",
            "assertions": [
              "skills/observer/SKILL.md is loaded and stays dormant until a trigger phrase",
              "No workflow analysis is produced before the trigger phrase",
              "Session context is scanned only after the trigger",
              "Thin context results in a recommendation to switch to active mode, not fabrication",
              "Workflow state is persisted under the workflow-architect:state: prefix"
            ]
          },
          {
            "id": "bundle-generation-output",
            "prompt": "I finished the interview and we converged on my workflow: morning triage, deep work, and end-of-day review phases. Generate my skills bundle.",
            "expected_output": "Scenario: bundle synthesis. The agent loads skills/bundle-builder/SKILL.md and renders a valid Agent Skills bundle: an umbrella SKILL.md with trigger-oriented description, one sub-skill per phase with its own description and triggers, a manifest mapping skill names to trigger conditions and transition signals, and a Mermaid decision map. The bundle is written to the host skill directory, the umbrella and sub-skills are registered, and the agent verifies the umbrella and at least one sub-skill load. The user is told where it landed, what skills it contains, and a trigger phrase they can use to enter the workflow.",
            "assertions": [
              "skills/bundle-builder/SKILL.md is loaded for synthesis",
              "The output bundle has an umbrella SKILL.md and one sub-skill per workflow phase",
              "The manifest maps skill names to trigger conditions and transition signals",
              "A Mermaid decision map is produced",
              "The umbrella and at least one sub-skill are verified to load",
              "The user is told the output location, skill list, and an entry trigger phrase"
            ]
          },
          {
            "id": "thin-context-degradation",
            "prompt": "/workflow-architect passive — I just started this session and there are only two messages. Tell me my workflow.",
            "expected_output": "Scenario: degraded observation input. The session has far fewer than 20 substantive turns, so the observer does NOT reconstruct a workflow. It explicitly states that observation mode needs more context and recommends switching to active interrogation mode (the 8-15 question interview) to build the workflow model reliably. No workflow bundle is generated from the thin context.",
            "assertions": [
              "No workflow is reconstructed from the thin session context",
              "The limitation (needs ~20+ substantive turns) is stated explicitly",
              "The observer recommends active interrogation mode as the alternative",
              "No bundle is generated from sparse evidence"
            ]
          },
          {
            "id": "kanban-decision-criteria",
            "prompt": "My workflow is a single linear pipeline: triage inbox, draft, edit, publish. Should the generated bundle include a kanban board?",
            "expected_output": "Scenario: kanban inclusion decision. The agent applies the kanban decision criteria from references/kanban-decision-criteria.md: a predictable linear path with clear lane transitions can benefit from a kanban board with WIP limits. For this triage → draft → edit → publish pipeline the board is included, with board slug, phases, and WIP limits in the generated bundle. The decision is explained; a non-linear, context-heavy workflow would omit the board.",
            "assertions": [
              "The kanban decision criteria reference is consulted",
              "The linear triage → draft → edit → publish pipeline is recognized as a kanban candidate",
              "The generated bundle includes a kanban board with phases and WIP limits",
              "The decision rationale is explained to the user"
            ]
          },
          {
            "id": "trigger-condition-quality",
            "prompt": "Generate my workflow bundle. One of my phases is 'deep work' — what should its description look like?",
            "expected_output": "Scenario: trigger-condition authoring. The sub-skill descriptions follow the Agent Skills trigger format: an imperative-verb description that both positively and negatively bounds when the sub-skill loads (e.g., 'load when the user shifts into deep work mode' with a negative boundary for shallow task-switching). The description vocabulary matches how the user actually talks about entering that phase, and the umbrella description carries the broad entry triggers for the bundle. No sub-skill description is a bare phase name with no trigger guidance.",
            "assertions": [
              "Sub-skill descriptions start with an imperative verb and define a positive trigger",
              "Sub-skill descriptions include a negative boundary for when not to load",
              "Trigger vocabulary matches how the user describes entering the phase",
              "No sub-skill description is a bare phase name without trigger guidance"
            ]
          }
        ]
      }
      
  • references
    • example-output
      • developer-pipeline-kanban
        • kanban
          • board-setup.sh 1 KB
            #!/usr/bin/env bash
            # Generated by workflow-architect — review before running
            # Kanban board for developer-pipeline-kanban
            # Archetype: build-review-deploy
            
            set -euo pipefail
            
            BOARD_SLUG="developer-pipeline-kanban"
            BOARD_NAME="Developer Pipeline Kanban"
            
            echo "Creating kanban board: $BOARD_NAME ($BOARD_SLUG)"
            
            # Create the board
            hermes kanban boards create "$BOARD_SLUG" \
              --name "$BOARD_NAME" \
              --description "Generated by workflow-architect on 2026-05-29" \
              --switch
            
            echo "Board created and switched to $BOARD_SLUG"
            echo ""
            echo "To add work, create a task for the Build phase:"
            echo '  hermes kanban create "Build: <feature>" --skill developer-pipeline-kanban/build --priority 3'
            echo ""
            echo "Then chain Review and Deploy tasks:"
            echo '  hermes kanban create "Review: <feature>" --parent <build-task-id> --skill developer-pipeline-kanban/review --priority 2'
            echo '  hermes kanban create "Deploy: <feature>" --parent <review-task-id> --skill developer-pipeline-kanban/deploy --priority 1'
            echo ""
            echo "See kanban/task-blueprints.yaml for templates."
            
          • README.md 1.6 KB
            # Kanban Board: Developer Pipeline Kanban
            
            This workflow maps to a Hermes Kanban board with **3 phases** in sequence:
            **Build → Review → Deploy**
            
            ## Setup
            
            Run `kanban/board-setup.sh` to create the board:
            
            ```bash
            bash kanban/board-setup.sh
            ```
            
            The script creates the board and switches to it. If you prefer to set it up
            manually:
            
            ```bash
            hermes kanban boards create developer-pipeline-kanban \
              --name "Developer Pipeline Kanban"
            ```
            
            ## Task Lifecycle
            
            ```
            Build → Review → Deploy
            ```
            
            Each phase's task depends on the previous phase's task completing. When a
            Build task is marked `done`, its linked Review task auto-promotes from `todo`
            to `ready`. The dispatcher picks it up on the next tick and spawns a worker.
            
            ## Adding Work
            
            Create a Build task:
            
            ```bash
            hermes kanban create "Build: rate limiting middleware" \
              --skill developer-pipeline-kanban/build \
              --priority 3
            ```
            
            Note the returned task ID. Chain Review and Deploy:
            
            ```bash
            hermes kanban create "Review: rate limiting middleware" \
              --parent <build-task-id> \
              --skill developer-pipeline-kanban/review \
              --priority 2
            
            hermes kanban create "Deploy: rate limiting middleware" \
              --parent <review-task-id> \
              --skill developer-pipeline-kanban/deploy \
              --priority 1
            ```
            
            ## Concurrent Features
            
            To work on multiple features simultaneously, create independent Build tasks
            for each. Each spawns its own Review → Deploy chain. The dispatcher handles
            concurrency — set WIP by not creating too many Build tasks at once.
            
            ## Task Blueprints
            
            See `kanban/task-blueprints.yaml` for template definitions of each phase's
            task, including default priorities, skill mappings, and worker instructions.
            
          • task-blueprints.yaml 1.7 KB
            # kanban/task-blueprints.yaml
            # Template tasks for the developer-pipeline-kanban workflow
            # Use these as reference when creating tasks for each phase.
            
            board_slug: developer-pipeline-kanban
            generated: 2026-05-29
            archetype: build-review-deploy
            
            # Each blueprint maps a workflow phase to a kanban task template.
            # The dependency chain: Build → Review → Deploy.
            # Each subsequent task uses --parent to link back, so the next phase
            # auto-promotes to "ready" when the previous one is done.
            
            blueprints:
              - phase: build
                title_template: "Build: {{feature}}"
                skill: developer-pipeline-kanban/build
                default_priority: 3
                initial_status: todo
                body: |
                  # Build Phase
                  Load skill: skill_view(name='developer-pipeline-kanban/build')
                  Definition of done: code written, tests passing, local build succeeds.
                  On completion: create a "Review" task with --parent pointing to this task's ID.
            
              - phase: review
                title_template: "Review: {{feature}}"
                skill: developer-pipeline-kanban/review
                default_priority: 2
                initial_status: todo
                body: |
                  # Review Phase
                  Load skill: skill_view(name='developer-pipeline-kanban/review')
                  Definition of done: code reviewed, approved or changes requested.
                  On approval: create a "Deploy" task with --parent pointing to this task's ID.
                  If changes requested: the author creates a new Build task.
            
              - phase: deploy
                title_template: "Deploy: {{feature}}"
                skill: developer-pipeline-kanban/deploy
                default_priority: 1
                initial_status: todo
                body: |
                  # Deploy Phase
                  Load skill: skill_view(name='developer-pipeline-kanban/deploy')
                  Definition of done: change is live and verified. Terminal phase.
                  On completion: close the task. Pipeline complete.
            
        • skills
          • build.md 1.5 KB
            ---
            name: build
            description: >-
              Use when the user shifts into building mode — writing code, implementing
              a feature, or developing something new. Keywords: build, implement, code,
              feature, write code, develop.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, build, development]
              spec-version: "1.0"
            ---
            
            # Build Phase
            
            This skill is part of the **developer-pipeline-kanban** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when the user starts a new task or feature implementation. This is
            the first phase in the build → review → deploy pipeline.
            
            ## What to Do
            
            1. **Clarify the task.** What needs to be built? Get a one-sentence
               definition of done before starting.
            
            2. **Gather context.** Load relevant files, specs, or documentation.
            
            3. **Implement.** Work iteratively — small cycles of code, test, verify.
            
            4. **Verify definition of done.** Code written, tests passing, local build
               succeeds.
            
            ## Transition Signals
            
            This phase ends when the implementation is complete and ready for review.
            The user will say something like "ready for review," "open a PR," or
            "submit for CR."
            
            ## What to Tell the User
            
            Keep responses focused and actionable. After each cycle, summarize what
            was done and what's next. When the build is complete, offer to create the
            review task on the kanban board.
            
            ```
            "The feature is implemented and tests pass. Ready for review.
            Want me to create the Review task on the kanban board?"
            ```
            
          • deploy.md 1.3 KB
            ---
            name: deploy
            description: >-
              Use when the user is deploying code, releasing a version, or pushing to
              production. Keywords: deploy, release, ship, push to prod, publish, go live.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, deploy, release]
              spec-version: "1.0"
            ---
            
            # Deploy Phase
            
            This skill is part of the **developer-pipeline-kanban** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when approved code is being deployed to production or a release
            environment. This is the third and final phase in the build → review → deploy
            pipeline.
            
            ## What to Do
            
            1. **Verify the target.** Confirm which environment, branch, or version
               is being deployed to.
            
            2. **Run pre-deploy checks.** Any tests, migrations, or config changes that
               need to happen before deploy.
            
            3. **Execute the deploy.** Follow the project's deployment process.
            
            4. **Verify the deploy.** Confirm the change is live and working.
            
            ## Transition Signals
            
            This phase is terminal. When the deploy is verified, the pipeline is
            complete. Close the task.
            
            ## What to Tell the User
            
            Keep it brief — the user wants to confirm it's live and move on. Offer to
            close the kanban task.
            
            ```
            "Deploy complete and verified. The change is live.
            Closing the kanban task. Anything else?"
            ```
            
          • review.md 1.5 KB
            ---
            name: review
            description: >-
              Use when the user is reviewing code, approving changes, or responding to
              review feedback. Keywords: review, approve, check my code, code review, CR.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, review, code-review]
              spec-version: "1.0"
            ---
            
            # Review Phase
            
            This skill is part of the **developer-pipeline-kanban** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when the user is reviewing code, checking a PR, or responding to
            review comments. This is the second phase in the build → review → deploy
            pipeline.
            
            ## What to Do
            
            1. **Load the diff.** Present the changes clearly — what files were touched,
               what the diff looks like, any inline comments.
            
            2. **Review systematically.** Check for correctness, style, edge cases, and
               test coverage. Flag blockers vs suggestions clearly.
            
            3. **Track review state.** Know whether this needs changes, is approved, or
               is waiting on author response.
            
            ## Transition Signals
            
            This phase ends when the review is complete:
            - **Approved:** The code is ready for deploy.
            - **Changes requested:** A new build phase starts for fixes.
            
            ## What to Tell the User
            
            Be specific about what needs to change and why. Frame concerns as questions
            where possible. When approved, offer to create the deploy task.
            
            ```
            "The code looks solid. Two minor style nits in auth.py (lines 42, 89),
            but nothing blocking. Approving — want me to create the Deploy task?"
            ```
            
        • decision-map.md 308 B
          # Developer Pipeline Kanban — Decision Map
          
          ```mermaid
          flowchart LR
              START(["New Feature Request"]) --> BUILD["Build Phase"]
              BUILD --> REVIEW{"Review Outcome"}
              REVIEW -->|"Approved"| DEPLOY["Deploy Phase"]
              REVIEW -->|"Changes Requested"| BUILD
              DEPLOY --> DONE(["Pipeline Complete"])
          ```
          
        • manifest.yaml 1 KB
          # manifest.yaml
          
          bundle_name: developer-pipeline-kanban
          generated: 2026-05-29
          archetype: build-review-deploy
          
          kanban:
            board_slug: developer-pipeline-kanban
            phases: [build, review, deploy]
          
          skills:
            - name: build
              file: skills/build.md
              trigger:
                type: keyword
                keywords: [build, implement, code, feature, write code, develop]
                description: >-
                  Loads when the user shifts into building mode — writing code,
                  implementing a feature, or developing something new.
          
            - name: review
              file: skills/review.md
              trigger:
                type: keyword
                keywords: [review, approve, check my code, code review, CR]
                description: >-
                  Loads when the user is reviewing someone else's code or responding
                  to review feedback.
          
            - name: deploy
              file: skills/deploy.md
              trigger:
                type: keyword
                keywords: [deploy, release, ship, push to prod, publish, go live]
                description: >-
                  Loads when the user is deploying code, releasing a version, or
                  pushing to production.
          
        • README.md 1.5 KB
          # Developer Pipeline Kanban — Example Output (kanban-enabled)
          
          This directory is a **worked example** of what workflow-architect produces
          when the discovered workflow is linear enough for kanban. It represents a
          fictional developer who follows a strict **build → review → deploy** pipeline.
          
          **This workflow uses kanban** because the phases are strictly sequential,
          each has clear entry/exit criteria, and the user tracks multiple features
          through the pipeline concurrently.
          
          ## What's in here
          
          | File | Purpose |
          |------|---------|
          | `manifest.yaml` | Maps skills to trigger conditions, includes kanban metadata |
          | `skills/build.md` | Build phase — implement the feature |
          | `skills/review.md` | Review phase — code review and approval |
          | `skills/deploy.md` | Deploy phase — ship to production |
          | `kanban/board-setup.sh` | Hermes CLI script to create the kanban board |
          | `kanban/task-blueprints.yaml` | Phase-to-kanban-task definitions |
          | `kanban/README.md` | Usage guide for the kanban board |
          | `decision-map.md` | Mermaid flowchart of the linear pipeline |
          
          ## Comparison with developer-triage
          
          | Aspect | developer-triage (no kanban) | developer-pipeline-kanban |
          |--------|------|------|
          | Workflow shape | Emergent — depends on what's pending | Linear — build → review → deploy |
          | Kanban fit | Low — branching is context-dependent | High — strict sequence, hand-offs, concurrent items |
          | Branching | Yes — PR check determines direction | No — fixed pipeline |
          | What's in the bundle | Skills only | Skills + kanban board + task blueprints |
          
      • developer-triage
        • references
          • generated-from.md 382 B
            # Generated From
            
            This output bundle was generated by **workflow-architect**.
            
            - **Skill:** workflow-architect
            - **Mode:** active interrogation
            - **Date:** 2026-05-29
            - **Archetype:** morning-triage-deep-work
            - **Convergence Score:** 0.85
            
            This file is included in the example output to document the generation
            metadata. A real bundle would include a similar file in `references/`.
            
        • skills
          • deep-work.md 2.1 KB
            ---
            name: deep-work
            description: >-
              Use when the user shifts into focused building or research mode — writing
              code, drafting content, implementing a feature, researching a topic, or
              designing. Activates after triage or when the session opens with a task.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, deep-work, focus, build]
              spec-version: "1.0"
            ---
            
            # Deep Work
            
            This skill is part of the **developer-triage** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when the user commits to a specific deliverable or task. Signals
            include: naming a file or feature to build, asking for implementation help,
            requesting research on a topic, or saying "let's work on X."
            
            ## What to Do
            
            1. **Clarify the goal.** What exactly is being built, written, or researched?
               Get a one-sentence definition of done before starting.
            
            2. **Gather context.** Load relevant files, documentation, or previous work.
               Present a brief status: what already exists, what needs to change.
            
            3. **Work iteratively.** Build or research in small cycles. After each cycle,
               summarize what was done and confirm the user wants to continue before
               moving to the next step.
            
            4. **Handle interruptions.** If the user context-switches during deep work,
               save the current state and note what was in progress before switching.
            
            ## Transition Signals
            
            This phase ends when the user either:
            - Completes the deliverable ("that's it, ship it")
            - Hits a state change like needing a PR review before continuing
            - Decides to pause and switch to something else
            - Runs out of time/energy for this session
            
            ## What to Tell the User
            
            Match the user's energy. If they're in flow, keep responses minimal and
            actionable. If they're exploring, offer options and alternatives. Save
            checkpoint summaries at each notable milestone.
            
            Example:
            ```
            "The feature branch is up to date. I implemented the core logic in
            src/handler.py (82 lines), added tests in tests/test_handler.py (34 lines),
            and everything passes. Want me to push and open a PR?"
            ```
            
          • morning-triage.md 1.9 KB
            ---
            name: morning-triage
            description: >-
              Use when the user starts their morning routine — checking notifications,
              reviewing open PRs, scanning overnight activity, and prioritizing the day's
              tasks. Keywords: check, review, what's new, morning, PR, status.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, morning, triage, daily]
              spec-version: "1.0"
            ---
            
            # Morning Triage
            
            This skill is part of the **developer-triage** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when the user's opening message references status checks, pending
            items, overnight updates, or PR assignments. This typically fires during
            the first session of the day or after a long break.
            
            ## What to Do
            
            1. **Sweep open items.** Check what PRs are assigned to the user, what issues
               need attention, and any overnight updates. Present a concise summary of
               what's pending.
            
            2. **Flag urgent items.** If anything is time-sensitive or blocking someone
               else, surface it first.
            
            3. **Suggest priorities.** Based on what's open, recommend an order of work.
               Offer to slot items into the current session.
            
            4. **Ask about blockers.** Inquire whether anything is stuck or waiting on
               the user.
            
            ## Transition Signals
            
            This phase ends when the user either:
            - Picks a task and shifts into deep work ("ok let's work on X")
            - Says they need to review a specific PR first
            - Signals they're done with intake ("that's it, nothing urgent")
            
            ## What to Tell the User
            
            Be concise and structured. Use bullet points for open items. Lead with the
            most important change since the user's last session. Don't ask open-ended
            questions like "how was your night" — keep it task-focused.
            
            Example:
            ```
            "You have 3 open PRs assigned to you, 1 new issue filed since yesterday,
            and no blockers. PR #142 from Alex has been waiting 2 days — want to
            start with that?"
            ```
            
          • pr-review.md 2.2 KB
            ---
            name: pr-review
            description: >-
              Use when the user is reviewing a pull request, responding to review feedback,
              or checking on PR status. Keywords: review, approve, changes requested,
              check my PR, merge.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, review, PR, code-review]
              spec-version: "1.0"
            ---
            
            # PR Review
            
            This skill is part of the **developer-triage** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when the user mentions specific PRs, review requests, or approval
            workflow. This may fire during triage (checking PRs), after building (opening
            a PR), or as a dedicated review session.
            
            ## What to Do
            
            1. **Load the PR.** Fetch the PR diff, description, and any discussion
               comments. Present a high-level summary: what it changes, how many files,
               what's at stake.
            
            2. **Review systematically.** Work through the diff section by section.
               Flag concerns with specific lines, not general impressions. Distinguish
               between blockers (this must change) and suggestions (consider this).
            
            3. **Track the review state.** Know whether the PR needs changes, is
               approved, or is pending author response.
            
            4. **Offer to generate review summary.** A structured review comment with
               change requests, questions, and approval status.
            
            ## Transition Signals
            
            This phase ends when the user either:
            - Completes the review (approves or requests changes)
            - Switches to implementing feedback
            - Hits "nothing to review right now" and shifts to something else
            
            ## What to Tell the User
            
            Be precise and constructive. Reference specific lines and files. Frame
            concerns as questions where possible ("Is there a reason this uses X
            instead of Y?") rather than demands. Keep the tone collaborative.
            
            Example:
            ```
            "PR #142 (feat: add rate limiting middleware) — 3 files changed, +127/-14.
            Looks solid overall. Two things to flag:
            - Line 47 in middleware.py: the config default uses 100 req/min but the
              spec says 60. Intentional?
            - Lines 89-92: the retry logic catches Exception instead of specific
              HTTP errors. Could swallow real failures.
            Everything else looks good. Want me to post this as a review?"
            ```
            
          • session-wrap.md 2.1 KB
            ---
            name: session-wrap
            description: >-
              Use when the user is wrapping up a session — summarizing decisions, filing
              follow-up issues, saving state, or committing work. Keywords: wrap, done,
              finish, save, close, ship, summarize.
            license: MIT
            compatibility: Compatible with any agent supporting the Agent Skills format
            metadata:
              tags: [workflow, wrap, session, summary]
              spec-version: "1.0"
            ---
            
            # Session Wrap
            
            This skill is part of the **developer-triage** bundle, generated by
            workflow-architect on 2026-05-29.
            
            ## When to Use
            
            Activate when the user signals session completion or starts summarizing
            what happened. This usually fires based on explicit wrap language ("let's
            wrap up," "I'm done for now") or session duration signals.
            
            ## What to Do
            
            1. **Summarize what was accomplished.** List the key outcomes of the session:
               what was built, fixed, decided, or learned. Be specific — reference
               PRs filed, bugs fixed, issues created.
            
            2. **Capture incomplete items.** Note anything that was started but not
               finished. Save the state so the next session can pick up where this
               one left off.
            
            3. **File follow-ups.** If any decisions need tracking, file issues or
               tasks. If any questions remain open, note them.
            
            4. **Save session state.** Commit or stash any work-in-progress. Write a
               session note if the user's workflow includes that step.
            
            5. **Offer the exit.** Ask if there's anything else before signing off.
            
            ## Transition Signals
            
            The session ends after the user confirms the wrap summary or says they're
            done. No further transitions — this is the terminal phase.
            
            ## What to Tell the User
            
            Start with the positive (what got done), then cover what's left. Keep it
            brief — the user is mentally checking out. End with a clear statement of
            where things stand for next time.
            
            Example:
            ```
            "This session's summary:
            ✅ PR #142 reviewed and approved
            ✅ Rate limiter feature branch created (+127 lines)
            ❌ Thought about but didn't start: the cache invalidation issue
               (#89 — still needs investigation)
            
            I've stashed the WIP branch. Next session: pick up cache invalidation
            or tackle whatever's new. Sound good?"
            ```
            
        • decision-map.md 877 B
          # Developer Triage — Decision Map
          
          ```mermaid
          flowchart TD
              START(["Session Start"]) --> ENTRY["Check PRs, review overnight activity"]
          
              ENTRY --> TRIAGE["Morning Triage"]
              TRIAGE --> BRANCH1{"Pending PRs assigned?"}
              BRANCH1 -->|"Yes — review first"| PR_REVIEW["Code Review"]
              BRANCH1 -->|"No — pick from backlog"| DEEP_WORK["Deep Work"]
          
              PR_REVIEW --> BRANCH2{"Review complete?"}
              BRANCH2 -->|"Approved — return to triage"| TRIAGE
              BRANCH2 -->|"Changes requested — switch to build"| DEEP_WORK
          
              DEEP_WORK --> BRANCH3{"Need a review?"}
              BRANCH3 -->|"Open a PR"| PR_REVIEW
              BRANCH3 -->|"Keep building"| DEEP_WORK
              BRANCH3 -->|"Done for now"| WRAP["Session Wrap"]
          
              WRAP --> EXIT{"All items complete?"}
              EXIT -->|"Yes"| DONE(["Session Complete"])
              EXIT -->|"No — save for later"| SAVED(["Stashed for Next Session"])
          ```
          
        • manifest.yaml 1.6 KB
          # manifest.yaml
          
          bundle_name: developer-triage
          generated: 2026-05-29
          archetype: morning-triage-deep-work
          
          skills:
            - name: morning-triage
              file: skills/morning-triage.md
              trigger:
                type: keyword
                keywords: [check, review, overnight, what's new, morning, PR, status]
                description: >-
                  Loads when the user opens with status checks, PR review requests,
                  morning intake language, or "what's new."
          
            - name: deep-work
              file: skills/deep-work.md
              trigger:
                type: keyword+context
                keywords: [build, write, create, implement, focus, research, design]
                context: >-
                  After morning triage is complete or when the user opens a session
                  with a specific task or deliverable goal.
                description: >-
                  Loads when the user shifts into building or creating mode — writing
                  code, drafting content, researching a topic, or designing.
          
            - name: pr-review
              file: skills/pr-review.md
              trigger:
                type: keyword
                keywords: [review, approve, changes requested, check my PR, merge]
                description: >-
                  Loads when the user is reviewing a pull request, responding to review
                  feedback, or checking on PR status.
          
            - name: session-wrap
              file: skills/session-wrap.md
              trigger:
                type: keyword+context
                keywords: [wrap, done, finish, save, close, ship, summarize]
                context: >-
                  Session duration exceeds 20 minutes, or user language shifts to
                  completion signals.
                description: >-
                  Loads when the user signals session completion or wraps up work —
                  summarizing decisions, filing follow-up issues, saving state.
          
        • README.md 2.7 KB
          # Developer Triage Workflow — Example Output
          
          This directory is a **worked example** of what workflow-architect produces.
          It represents a fictional developer whose typical day follows this pattern:
          
          1. **Morning triage** — check PRs, review overnight activity, prioritize tasks
          2. **Deep work** — either building a feature or researching a problem
          3. **Code review** — review PRs from teammates
          4. **Session wrap** — summarize progress, file issues, save state
          
          This example is included as documentation. It is not a functional skill
          bundle — it demonstrates the output format. A real bundle would have live
          skill files ready for agent loading.
          
          ## Contents
          
          | File | Purpose |
          |------|---------|
          | `manifest.yaml` | Maps skills to trigger conditions |
          | `skills/morning-triage.md` | First-phase workflow skill |
          | `skills/deep-work.md` | Workflow skill for focused building mode |
          | `skills/pr-review.md` | Workflow skill for code review mode |
          | `skills/session-wrap.md` | End-of-session workflow skill |
          | `decision-map.md` | Mermaid flowchart of the workflow |
          
          ## What was this generated from?
          
          This bundle was generated by workflow-architect in **active interrogation**
          mode with the following state:
          
          ```yaml
          entry_points:
            - "Check open PRs assigned to me"
            - "Review overnight notifications"
          
          phases:
            - name: "Morning Triage"
              description: "Reviewing overnight activity, checking PRs, prioritizing"
              typical_tools: [gh, git, browser, project board]
              typical_openers: ["what's new", "check PRs", "review", "status"]
            - name: "Deep Work"
              description: "Focused building or research on a single task"
              typical_tools: [editor, terminal, git, docs]
              typical_openers: ["build", "implement", "research", "write"]
            - name: "Code Review"
              description: "Reviewing and approving PRs from teammates"
              typical_tools: [gh, browser, editor]
              typical_openers: ["review this", "check my PR", "approve"]
            - name: "Session Wrap"
              description: "Summarizing progress, filing follow-ups, saving state"
              typical_tools: [notes, issue tracker, git]
              typical_openers: ["wrap", "done", "save", "summarize"]
          
          branching:
            - signal: "Pending PRs assigned to me"
              leads_to: "Triage → Review first, then deep work"
            - signal: "No pending items"
              leads_to: "Pick from kanban backlog or start something new"
          
          kanban: false  # Workflow has emergent branching; kanban adds marginal value
          ```
          
          > **No kanban in this example.** This workflow has emergent branching
          > (what you do depends on whether PRs are pending), so workflow-architect
          > correctly decided not to include a kanban board. See the
          > `developer-pipeline-kanban` example for a strictly linear workflow that
          > does include kanban.
          
    • kanban-decision-criteria.md 7.1 KB
      # Kanban Decision Criteria
      
      When to include a kanban board definition in the generated bundle — and when
      not to.
      
      ---
      
      ## The Principle
      
      Kanban adds value when work flows through a **predictable, repeatable
      sequence of states** where **limiting work-in-progress** and **visualizing
      flow** produces actionable insight.
      
      Kanban subtracts value when work is **emergent, exploratory, or reactive** —
      situations where the states are unpredictable and WIP limits don't apply
      because there's nothing to limit.
      
      ---
      
      ## Kanban-Appropriate Signals
      
      Include a kanban board when the interview reveals:
      
      ### 1. Linear Phase Structure
      
      The user describes their workflow as a sequence:
      > "I always start with triage, then pick something to build, then review
      > it, then ship it."
      
      **Translation:** A → B → C → D structure. Each phase has a clear entry and
      exit. Phases don't overlap or loop.
      
      ### 2. Explicit Hand-Offs
      
      The user mentions waiting on others or passing work between people:
      > "After I finish my part, it goes to review. Sometimes it sits there for
      > a day."
      
      **Translation:** There are queues. Work accumulates between phases. Visualizing
      the queue helps manage flow.
      
      ### 3. Multiple Concurrent Items
      
      The user tracks more than one active thing:
      > "I usually have 3-4 things in progress at various stages."
      
      **Translation:** WIP limits are meaningful. Without a board, the user may
      not realize they're overcommitted.
      
      ### 4. Status as a Common Question
      
      The user asks "where is X" or "what's the status of Y":
      > "People keep asking me where their PRs are in the review queue."
      
      **Translation:** The workflow lacks visibility. A board provides it.
      
      ### 5. Fixed Completion Criteria
      
      Each phase has a clear "done" condition:
      > "It's in review until someone approves it, then it's done."
      
      **Translation:** Lane transitions are unambiguous. Nobody argues about
      whether something is "in review" or "in progress."
      
      ---
      
      ## Kanban-Inappropriate Signals
      
      Do NOT include a kanban board when the interview reveals:
      
      ### 1. Emergent Session Shape
      
      Each session looks different depending on context:
      > "It really depends on what happened overnight. Sometimes I'm debugging,
      > sometimes I'm building, sometimes I'm just researching."
      
      **Translation:** The workflow is too context-dependent for lanes to be stable.
      
      ### 2. Single-Item Focus
      
      The user works on one thing at a time to completion:
      > "I pick one thing and don't stop until it's done."
      
      **Translation:** There's nothing to limit or prioritize on a board. A
      simple task list is more appropriate.
      
      ### 3. Exploratory / Creative Work
      
      The process is discovery-driven:
      > "I start researching something and see where it leads. I don't know
      > what I'll find until I find it."
      
      **Translation:** The phases are emergent. Forcing a kanban structure would
      add friction, not clarity.
      
      ### 4. Reactive / Event-Driven
      
      Work is driven by external events, not planned:
      > "I respond to alerts, requests, and fires. I don't really plan my
      > sessions."
      
      **Translation:** Kanban boards assume some level of planned workflow.
      Reactive work needs a ticketing system, not a board.
      
      ### 5. No Clear "Done"
      
      The user can't describe what completion looks like for each phase:
      > "I know I'm done when it feels right."
      
      **Translation:** If transitions are subjective, lanes become ambiguous.
      The board will need constant reinterpretation.
      
      ---
      
      ## Decision Flowchart
      
      ```
      Interview reveals workflow structure:
      
      Is there a clear A → B → C → D sequence?
      ├── YES → Can the user name each phase's entry and exit?
      │   ├── YES → Does the user have multiple concurrent items?
      │   │   ├── YES → KANBAN. High-value fit.
      │   │   └── NO  → Is there a queue or hand-off between phases?
      │   │       ├── YES → KANBAN. Still valuable for flow visibility.
      │   │       └── NO  → Kanban adds marginal value. Check user interest.
      │   └── NO  → Is the ambiguity in exit criteria only?
      │       ├── YES → Kanban with softer lane boundaries. Defer to user.
      │       └── NO  → Kanban inappropriate. Use phase skills only.
      └── NO → Is the workflow reactive or event-driven?
          ├── YES → Kanban inappropriate. Use phase skills only.
          └── NO → Is the user interested in a board anyway?
              ├── YES → Generate lightweight kanban. Flag the limitation.
              └── NO  → Kanban inappropriate. Phase skills only.
      ```
      
      ---
      
      ## Implementation
      
      When kanban is appropriate, the bundle includes a `kanban/` directory with
      three files.
      
      ### Board setup (kanban/board-setup.sh)
      
      An executable shell script that creates the board:
      
      ```bash
      #!/usr/bin/env bash
      set -euo pipefail
      
      hermes kanban boards create my-workflow \
        --name "My Workflow" \
        --description "Generated by workflow-architect" \
        --switch
      ```
      
      The user reviews and runs this. It does not create tasks — just the board
      container.
      
      ### Task blueprints (kanban/task-blueprints.yaml)
      
      Maps each workflow phase to a kanban task template. Phases are ordered
      sequentially; each phase's task depends on the previous one:
      
      ```yaml
      board_slug: my-workflow
      archetype: build-review-deploy
      
      blueprints:
        - phase: build
          title_template: "Build: {{feature}}"
          skill: my-workflow/build
          default_priority: 3
          initial_status: todo
          body: |
            # Build Phase
            Load skill: skill_view(name='my-workflow/build')
            Definition of done: code written, tests passing, local build succeeds.
            On completion: create a "Review" task with --parent pointing to this task.
      
        - phase: review
          title_template: "Review: {{feature}}"
          skill: my-workflow/review
          default_priority: 2
          initial_status: ready
          body: |
            # Review Phase
            Load skill: skill_view(name='my-workflow/review')
            Definition of done: review complete, changes approved or requested.
            On approval: create a "Deploy" task with --parent pointing to this task.
      
        - phase: deploy
          title_template: "Deploy: {{feature}}"
          skill: my-workflow/deploy
          default_priority: 1
          initial_status: ready
          body: |
            # Deploy Phase
            Load skill: skill_view(name='my-workflow/deploy')
            Definition of done: change is live and verified. Terminal phase.
      ```
      
      The dependency chain works through Hermes Kanban's built-in parent/child
      task relationship. When Build (no parent) is `done`, Review (parent=Build)
      auto-promotes from `todo` to `ready`. The dispatcher picks it up on the
      next tick.
      
      ### Lifecycle rules
      
      | Phase | Initial status | Dependency | Auto-promotes when |
      |-------|---------------|------------|-------------------|
      | First | `todo` | None | User creates task manually |
      | Middle | `todo` | Previous phase task | Previous phase is `done` |
      | Last | `todo` | Previous phase task | Previous phase is `done` |
      
      - **Concurrent items:** Users can create multiple first-phase tasks for
        parallel work items. Each spawns its own dependency chain.
      - **Blocked tasks:** Any task can be manually moved to `blocked` status.
        The dispatcher respects this and won't spawn blocked tasks.
      - **Priority:** First phase gets highest priority (3), last phase gets
        lowest (1). Tasks within a phase inherit the blueprint's default priority.
      
    • trigger-condition-patterns.md 5.8 KB
      # Trigger Condition Patterns
      
      This reference documents the canonical patterns for writing trigger conditions
      in the output bundle's sub-skills. The bundle-builder uses these patterns when
      generating each sub-skill's `description` field and "When to use" section.
      
      Trigger conditions tell the agent loader *when* to activate a skill. The more
      precise the trigger, the less friction the user experiences.
      
      ---
      
      ## Trigger Categories
      
      ### 1. Keyword-Based
      
      The most common pattern. The skill activates when the user mentions specific
      terms. Multiple keywords expand recall.
      
      **Pattern:**
      ```yaml
      description: >-
        Use when the user mentions [keyword], [keyword], or [keyword]. Also
        use when [context description].
      ```
      
      **Examples:**
      - "Use when the user says PR, review, approve, merge, or changes requested."
      - "Use when the user mentions debug, bug, broken, error, traceback, or crash."
      - "Use when the user says draft, article, write, publish, or blog post."
      
      **Best practices:**
      - Include 3-7 keywords — enough to trigger reliably, few enough to stay focused
      - Lead with the most specific keyword first
      - Use synonyms and common alternates (e.g., "debug" and "fix" for troubleshooting)
      
      ---
      
      ### 2. Context-Based
      
      The skill activates based on session state, not just user messages.
      
      **Pattern:**
      ```yaml
      description: >-
        [Bare description of when it applies, since context-based triggers are
        agent-determined rather than keyword-driven.]
      ```
      
      **Examples:**
      - "Load this at the start of every first session of the day. It runs the
        morning intake routine."
      - "Load this after a tool failure or error. It handles the diagnostics protocol."
      - "Load this when a session has been running for 30+ minutes. It suggests a
        wrap-up routine."
      
      **Best practices:**
      - Context-based triggers are harder to specify in the Agent Skills format
        (which relies on `description` keywords). Document the context signal
        in the skill's "When to use" section.
      - Pair with keyword triggers as fallback: "Use when the user says 'wrap up'
        or when the session has been running for 30+ minutes."
      
      ---
      
      ### 3. Signal-Based
      
      The skill activates on behavioral patterns, not explicit keywords.
      
      **Pattern:**
      ```yaml
      description: >-
        Use when the user [behavior description]. Activates on [signal type].
      ```
      
      **Examples:**
      - "Use when the user switches tools or context rapidly (3+ distinct requests
        in 5 turns). Helps re-center after context switching."
      - "Use when the user pauses for 60+ seconds mid-response. Offers to recap or
        re-establish focus."
      - "Use when the user types a `/` command. Handles command dispatch."
      
      **Best practices:**
      - Signal-based triggers are the most fragile — they depend on the agent
        detecting patterns in real time
      - Document the signal clearly in the body so the agent recognizes it
      - Prefer keyword or context triggers when possible
      
      ---
      
      ### 4. Time-Based
      
      The skill activates on a schedule, not in response to user input.
      
      **Pattern (for cron/scheduled skills):**
      ```yaml
      description: >-
        Cron skill. Runs [schedule] to [purpose]. Use when setting up recurring
        tasks or automated workflows.
      ```
      
      **Examples:**
      - "Runs every morning at 9am. Generates a daily standup summary from the
        previous day's work."
      - "Runs every Friday at 5pm. Prompts the user to wrap up open items for the
        week."
      - "Runs once per hour during active sessions. Checks for stalled work and
        suggests unblocking actions."
      
      **Best practices:**
      - Time-based triggers belong in the skill body, not the description
      - The description should still support keyword activation (user might say
        "set up my daily standup")
      - Cron scheduling is agent-specific — note compatibility requirements
      
      ---
      
      ## Writing Trigger Descriptions
      
      Each generated sub-skill's `description` field should follow this formula:
      
      ```
      Use when [who] [does what] [under what conditions].
      [Optional: what the skill provides.]
      ```
      
      **Examples:**
      - "Use when the user starts their morning routine — checking notifications,
        reviewing overnight updates, or prioritizing tasks."
      - "Use when the user shifts into building mode — writing code, drafting
        content, or designing. Provides focused work support."
      - "Use when the user is wrapping up a session — summarizing decisions,
        filing issues, or saving state for next time."
      
      ### Keywords to Include
      
      Pull from the phase's `typical_openers` and `typical_tools` discovered during
      the interview:
      
      - **Entry openers:** "check," "review," "what's new," "status," "start"
      - **Build openers:** "build," "write," "create," "implement," "design"
      - **Review openers:** "review," "look at," "check this," "approve"
      - **Wrap openers:** "wrap," "done," "save," "summarize," "ship"
      
      ---
      
      ## Trigger Condition Manifest Format
      
      The output bundle's `manifest.yaml` maps skills to their trigger conditions:
      
      ```yaml
      # manifest.yaml
      bundle_name: my-workflow
      generated: 2026-05-29
      archetype: morning-triage-deep-work
      
      skills:
        - name: morning-triage
          file: skills/morning-triage.md
          trigger:
            type: keyword
            keywords: [check, review, overnight, what's new, start, morning]
            description: >-
              Loads when the user opens with status checks,
              review requests, or morning intake language.
      
        - name: deep-work
          file: skills/deep-work.md
          trigger:
            type: keyword+context
            keywords: [build, write, create, implement, focus]
            context: After morning triage is complete or user skips
                      directly to a specific task
            description: >-
              Loads when the user shifts into building or creating mode,
              either after triage or as the session opener.
      
        - name: wrap
          file: skills/wrap.md
          trigger:
            type: keyword
            keywords: [wrap, done, save, close, ship, summarize]
            description: >-
              Loads when the user signals session completion or wraps up work.
      ```
      
      Each trigger can have `type` one of: `keyword`, `context`, `signal`, `time`,
      or a compound type like `keyword+context`.
      
    • workflow-archetypes.md 9.1 KB
      # Workflow Archetypes Library
      
      Common workflow patterns for convergence detection and question seeding.
      The interviewer and observer match the user's answers against these archetypes
      to accelerate convergence.
      
      Each archetype includes:
      - **Signature signals** — opening messages, tool choices, and patterns
      - **Typical phases** — the stages this workflow tends to follow
      - **Common branching points** — decisions that determine direction
      - **Exit patterns** — how sessions naturally end in this archetype
      - **Kanban affinity** — whether this workflow tends to benefit from kanban
      
      ---
      
      ## Morning Triage
      
      ### Signals
      - First session of the day
      - Opens with status checks, dashboards, task lists
      - Asks "what's pending," "any updates," "what's new"
      - References multiple threads or projects in the first 2-3 messages
      
      ### Typical Phases
      1. **Inbox sweep** — check notifications, email, task assignments
      2. **Prioritization** — decide what's urgent vs important
      3. **Stale item handling** — clear or defer leftover tasks
      4. **Deep work setup** — commit to a focus area for the day
      
      ### Branching Points
      - Overdue items → firefighting mode vs defer and focus
      - Urgent request from collaborator → context switch
      - "Everything's quiet" → proactive work, backlog grooming
      
      ### Exit Patterns
      - Natural pause after clearing the inbox
      - Transition to a specific task ("ok, now I'm going to work on X")
      - Explicit hand-off to deep work mode
      
      ### Kanban Affinity
      High — this is the most kanban-compatible pattern. Phases are sequential
      and easy to map to board lanes.
      
      ---
      
      ## Deep Work Sprint
      
      ### Signals
      - Opens with a specific goal or deliverable
      - Requests focused, single-threaded work
      - Resists interruptions or context switches
      - Uses language like "no distractions," "lock in," "just this"
      
      ### Typical Phases
      1. **Setup** — gather context, relevant files, open issues
      2. **Build / Write** — the main work, often in bursts
      3. **Test / Review** — check output, catch errors
      4. **Polish / Ship** — final pass, commit, deliver
      
      ### Branching Points
      - Encounter unexpected complexity → research/downtool vs push through
      - Test failure → debug loop vs return to building
      - Interruption → context switch vs defer
      
      ### Exit Patterns
      - Natural completion of the deliverable
      - Exhaustion / diminishing returns ("I need a break")
      - External interruption that breaks flow
      
      ### Kanban Affinity
      Medium — kanban works for the phases but deep work is often non-linear
      (research → build → research → build). Use simple lanes, no WIP.
      
      ---
      
      ## Bug Hunt / Debugging
      
      ### Signals
      - Opens with error messages, stack traces, or "this is broken"
      - Shares logs, reproduction steps, or screenshots
      - References specific files, lines of code, or symptoms
      - Uses language like "why does," "this shouldn't," "it worked before"
      
      ### Typical Phases
      1. **Reproduce** — confirm the bug exists and find the trigger
      2. **Narrow** — isolate the root cause through elimination
      3. **Fix** — apply and verify the correction
      4. **Test** — ensure fix doesn't break adjacent behavior
      
      ### Branching Points
      - Cannot reproduce → ask for more context vs move on
      - Root cause found → fix directly vs file issue for later
      - Fix breaks something else → rollback vs iterative fix
      
      ### Exit Patterns
      - Bug fixed and verified
      - Filed as a tracked issue for later resolution
      - Punted (can't reproduce, insufficient context)
      
      ### Kanban Affinity
      Low — bug hunting is inherently non-linear and exploratory.
      Lane-based tracking adds friction, not clarity.
      
      ---
      
      ## Research Synthesis
      
      ### Signals
      - Opens with a topic question, not a task
      - Requests information gathering, analysis, or comparison
      - Asks "what do we know about X" or "research Y"
      - References papers, articles, documentation
      
      ### Typical Phases
      1. **Scoping** — define what you're trying to learn
      2. **Gathering** — collect sources, clip, extract
      3. **Synthesis** — connect findings, identify patterns
      4. **Capture** — write summary, vault notes, or article
      
      ### Branching Points
      - Found conflicting sources → need to reconcile vs present both
      - Scope creep → broaden vs narrow
      - Serendipitous find → follow the thread vs save for later
      
      ### Exit Patterns
      - A written deliverable (note, article, summary)
      - Key question answered
      - Decided the topic doesn't warrant deeper investigation
      
      ### Kanban Affinity
      Low — research is emergent. The process is real but each session
      looks different. Kanban doesn't add value.
      
      ---
      
      ## Creative Drafting
      
      ### Signals
      - Opens with a concept, not a question
      - Uses language like "what if," "imagine," "draft something"
      - References style, tone, audience
      - Iterates on output rather than analyzing it
      
      ### Typical Phases
      1. **Inspiration** — gather references, mood, constraints
      2. **Draft** — produce the first version
      3. **Edit** — refine, restructure, tighten
      4. **Polish** — final pass, formatting, delivery
      
      ### Branching Points
      - Blocked on direction → try a different angle vs take a break
      - First draft is weak → revise vs start fresh
      - User dislikes direction → pivot vs push through
      
      ### Exit Patterns
      - A finished piece (article, script, design)
      - Published or delivered to destination
      - Saved as draft for later
      
      ### Kanban Affinity
      Medium — phases are sequential but the loop (draft → edit → draft) is
      common. Kanban with "Draft" and "Polish" lanes works if WIP limit is 1
      (items shouldn't pile up in Draft).
      
      ---
      
      ## Kanban Pipeline
      
      ### Signals
      - Opens with "what's on the board," "move this task," "status"
      - References specific task IDs, lanes, or tickets
      - Asks about progress, blockers, or next steps
      - Uses language like "ready for review," "in progress," "done"
      
      ### Typical Phases
      1. **Inbox / Triage** — new items, assign, prioritize
      2. **In Progress** — active work
      3. **Review** — code review, approval, feedback
      4. **Done** — completed, verified
      
      ### Branching Points
      - Item rejected in review → return to In Progress vs discard
      - Blocked → flag vs work around
      - Priority change → reprioritize board vs continue
      
      ### Exit Patterns
      - Board is up to date
      - All items in appropriate lanes
      - Next items are queued and ready
      
      ### Kanban Affinity
      Very High — this workflow already uses kanban. The bundle should
      include board definitions and lane rules.
      
      ---
      
      ## Firefighting / Incident Response
      
      ### Signals
      - Urgent language ("this is down," "blocked," "critical")
      - References production, users, or live systems
      - Short, direct messages — no preamble
      - Multiple rapid iterations
      
      ### Typical Phases
      1. **Triage** — assess severity, declare incident
      2. **Response** — stabilize, mitigate, restore
      3. **Root cause** — investigate what happened
      4. **Remediation** — permanent fix
      5. **Post-mortem** — document what was learned
      
      ### Branching Points
      - Cannot reproduce → different analysis path
      - Fix requires deploy → expedited vs standard
      - Incident is actually nothing → stand down
      
      ### Exit Patterns
      - Service restored
      - Fix applied and verified
      - Post-mortem written
      
      ### Kanban Affinity
      Low-to-medium — incident response has a clear process but it's
      too time-sensitive for kanban tracking. Post-mortem tracking can
      use kanban.
      
      ---
      
      ## On-Call Rotation
      
      ### Signals
      - Opens with status checks, alerts, or monitoring dashboards
      - References pagers, escalations, or rotation schedules
      - Shifts between long idle periods and high-intensity bursts
      
      ### Typical Phases
      1. **Handover** — review what happened since last shift
      2. **Monitoring** — watch dashboards, wait for alerts
      3. **Response** — handle incidents as they arise
      4. **Documentation** — log what happened for next shift
      
      ### Branching Points
      - Alert → respond vs acknowledge (no action needed)
      - Escalation → handle vs pass to senior
      - Quiet period → proactive work vs rest
      
      ### Exit Patterns
      - Shift end — handover written and delivered
      - All active incidents resolved or escalated
      
      ### Kanban Affinity
      Low — on-call is reactive and event-driven. Kanban doesn't help
      with incident frequency.
      
      ---
      
      ## Cross-Archetype Matching
      
      A user's workflow may blend multiple archetypes. Common combinations:
      
      | Combination | What it looks like |
      |-------------|-------------------|
      | Triage → Deep Work | Checks tasks, then settles into building |
      | Bug Hunt → Kanban | Debugs, then tracks the fix on a board |
      | Research → Creative Draft | Gathers sources, then writes from them |
      | Firefighting → Post-mortem | Responds, then documents learnings |
      | Morning Triage → Firefighting | Starts calm, shifts to urgent response |
      
      When matching, note the primary archetype and list secondary blends.
      The bundle should reflect the workflow as it actually flows, not force-fit
      a single archetype.
      
      ---
      
      ## Archetype Summary Table
      
      | Archetype | Kanban Fit | Bundle Bias |
      |-----------|------------|-------------|
      | Morning Triage | High | Clear phases, predictable transitions |
      | Deep Work Sprint | Medium | Phase-based with loop allowance |
      | Bug Hunt | Low | Tooling and diagnostics, not process |
      | Research Synthesis | Low | Reference management, not phases |
      | Creative Drafting | Medium | WIP limit of 1 on Draft lane |
      | Kanban Pipeline | Very High | Full board definition |
      | Firefighting | Low–Medium | Post-mortem tracking only |
      | On-Call | Low | Handover documentation |
      
  • skills
    • bundle-builder
      • evals
        • evals.json 5.7 KB
          {
            "schema_version": 1,
            "skill_name": "bundle-builder",
            "evals": [
              {
                "id": "full-bundle-generation",
                "prompt": "We finished the interview and converged on a workflow. Generate the Agent Skills bundle for it, including the umbrella, sub-skills, manifest, decision map, README, and AGENTS.md.",
                "expected_output": "Scenario: complete bundle generation from converged state. The agent loads bundle-builder, asks for a bundle name (or uses the fallback), reads all workflow-architect:state:* memory entries, and writes the bundle directory: SKILL.md umbrella first, manifest.yaml, README.md, one sub-skill per phase (kebab-case), decision-map.md, AGENTS.md, and references/generated-from.md. The agent registers the umbrella and sub-skills with the Hermes skill system and verifies at least one loads via skill_view.",
                "assertions": [
                  "The bundle name is established (asked or fallback)",
                  "The umbrella SKILL.md is written first with trigger-keyword description",
                  "All phase sub-skills, manifest, README, decision map, AGENTS.md, and generated-from metadata are written",
                  "The umbrella and sub-skills are registered with the skill system",
                  "At least one generated skill is verified loadable via skill_view"
                ]
              },
              {
                "id": "missing-state-abort",
                "prompt": "Generate a workflow bundle from the interview you ran earlier.",
                "expected_output": "Scenario: missing-state handling. If the workflow-architect:state:* entries are absent or missing required fields (entry_points, phases, branching, exit_criteria), the agent aborts with a clear message naming exactly what is missing and directs the user to run the interviewer (active) or observer (passive) first. It does not fabricate a bundle from partial or absent state.",
                "assertions": [
                  "The agent reads the workflow-architect:state:* memory entries first",
                  "A missing required field (entry_points, phases, branching, exit_criteria) triggers an abort message",
                  "The abort message names the missing field(s)",
                  "The user is routed back to interviewer/observer instead of a fabricated bundle"
                ]
              },
              {
                "id": "kanban-inclusion-decision",
                "prompt": "I have a workflow with phases A then B then C then D in a fixed order, and I'm always waiting on teammates between phases. Should the bundle include a kanban board?",
                "expected_output": "Scenario: kanban decision using the decision criteria. The agent consults the kanban-decision-criteria reference and decides kanban is appropriate because the phases form a clear linear sequence and the user mentions waiting on others/status tracking. It generates the kanban/ directory (board-setup.sh, task-blueprints.yaml, README.md) and presents the decision with the reason to the user. If the workflow were emergent instead, the agent would recommend against kanban.",
                "assertions": [
                  "The kanban decision criteria reference is consulted",
                  "A linear-sequence + handoff workflow leads to kanban inclusion",
                  "The kanban directory (board-setup.sh, task-blueprints, README) is generated when appropriate",
                  "The inclusion decision and its reason are presented to the user"
                ]
              },
              {
                "id": "sub-skill-registration-verification",
                "prompt": "Generate the bundle and make sure the generated skills actually show up in the skill list and can be loaded.",
                "expected_output": "Scenario: sub-skill registration and verification. After writing each phase sub-skill file, the agent registers each one with skill_manage(action='create') so it appears in skills_list() and is loadable via skill_view(name='<bundle-name>/<phase-name>'), then verifies at least one sub-skill loads without error. If registration fails, the agent checks that the sub-skill frontmatter name matches the filename and the YAML is valid.",
                "assertions": [
                  "Each generated sub-skill is registered with the Hermes skill system",
                  "Registered sub-skills appear in skills_list()",
                  "At least one sub-skill is verified loadable via skill_view",
                  "A registration failure triggers a frontmatter/name-match diagnostic"
                ]
              },
              {
                "id": "state-cleanup-after-generation",
                "prompt": "Bundle generation is done. Make sure future sessions don't get polluted by leftover interview state.",
                "expected_output": "Scenario: state cleanup. After writing all bundle files and verifying the umbrella and sub-skills load, the agent removes all workflow-architect:state:* memory entries so they don't pollute future sessions, and tells the user where the bundle was written and what it contains.",
                "assertions": [
                  "All workflow-architect:state:* memory entries are removed after generation",
                  "The user is told where the bundle was written and what it contains",
                  "The umbrella loads correctly after cleanup"
                ]
              },
              {
                "id": "umbrella-mandatory-first-step",
                "prompt": "Start generating my bundle. Here's the workflow state.",
                "expected_output": "Scenario: umbrella-first ordering. The agent writes the umbrella SKILL.md as the mandatory first step before any other file, because without it the agent's skill scanner has no entry point to match trigger keywords and the bundle would be invisible even though sub-skills exist on disk. The output reflects this ordering and the rationale for the umbrella as the discovery entry point.",
                "assertions": [
                  "The umbrella SKILL.md is written before any other bundle file",
                  "The umbrella is registered via skill_manage(action='create')",
                  "The rationale (umbrella is the discovery entry point) is stated",
                  "The bundle is verifiably discoverable via the umbrella"
                ]
              }
            ]
          }
          
      • README.md 510 B
        # Bundle Builder
        
        ## Why Install This Skill
        
        Turns a discovered workflow into a reusable skill bundle with a manifest, decision map, and phase skills.
        
        ## What You Get
        
        | Content | Purpose |
        |---|---|
        | `SKILL.md` | Bundle synthesis instructions |
        
        ## Quick Start
        
        Run workflow-architect’s active or passive mode, then load this step after the workflow converges.
        
        ## Triggers
        
        Use after workflow discovery is complete and a reusable bundle is needed.
        
        ## Requirements
        
        Hermes memory and file-writing tools.
        
      • SKILL.md 14 KB
        ---
        name: bundle-builder
        description: Render accumulated workflow state from memory into a valid Agent Skills
          bundle directory for workflow-architect, with sub-skills, manifest, decision map,
          and optional kanban board. Loaded after the interviewer or observer achieves convergence.
        license: MIT
        compatibility: Hermes Agent — uses write_file for bundle output, shell_quote
        metadata:
          tags: workflow, generation, bundle, synthesis
          spec-version: '1.0'
        ---
        
        # Bundle Builder — Workflow Synthesis Engine
        
        This sub-skill is loaded after the interviewer (active mode) or observer
        (passive mode) achieves convergence. It reads the accumulated workflow
        state from memory and generates an output bundle directory.
        
        ## Input
        
        All `workflow-architect:state:*` memory entries. Read them all at once:
        
        ```
        Read: workflow-architect:state:entry_points
        Read: workflow-architect:state:phases
        Read: workflow-architect:state:branching
        Read: workflow-architect:state:pain_points
        Read: workflow-architect:state:exit_criteria
        ```
        
        If any required fields are missing (entry_points, phases, branching, exit_criteria),
        abort with a clear message about what's missing.
        
        ## Output Structure
        
        The bundle is written to `~/.hermes/skills/<category>/<bundle-name>/` with this layout:
        
        ```
        <bundle-name>/
        ├── SKILL.md                # *** UMBRELLA ENTRY POINT *** — makes the bundle
        │                           # loadable via skill_view() and discoverable by
        │                           # the agent's skill scanner on trigger keywords.
        │                           # CRITICAL: without this, the bundle is invisible.
        ├── README.md               # Summary of this bundle
        ├── manifest.yaml           # Skill-to-trigger mapping
        ├── skills/
        │   ├── entry-skill.md      # One per discovered phase
        │   ├── phase-two.md
        │   └── ...
        ├── decision-map.md         # Mermaid flowchart
        ├── AGENTS.md               # Agent loading instructions for this bundle
        ├── kanban/
        │   └── board-definition.yaml  # Only if kanban is appropriate
        └── references/
            └── generated-from.md   # Metadata about how this bundle was created
        ```
        
        **The `SKILL.md` umbrella is not optional.** Without it, individual sub-skills
        may exist on disk but the agent's skill scanner has no entry point to match
        trigger keywords against. The umbrella is how the agent discovers and enters
        the bundle.
        
        ### Bundle naming
        
        Ask the user for a bundle name at the start of synthesis:
        
        ```
        "Before I generate the bundle — what should I call it?
        Something short, lowercase with hyphens, like 'my-triage-workflow'
        or 'dev-sprint-routine'."
        ```
        
        Fallback if user doesn't provide one: `my-workflow-<archetype>-<date>`.
        
        ### Writing the files
        
        For each file in the output bundle, use the shared templates in `../../templates/` as
        starting points. Render them by substituting the state values.
        
        **Step-by-step file creation order:**
        
        0. **Umbrella SKILL.md** — **MANDATORY FIRST STEP.** This is the entry point
           that makes the bundle discoverable. Write it directly to the bundle directory
           as `SKILL.md`, then register it via `skill_manage(action='create')`.
        
           The umbrella must include:
        
           - `name: <bundle-name>` matching the bundle name
           - `description` with **broad trigger keywords** covering all common ways the
             user enters this workflow (e.g., "I want to write about X", "I read
             something interesting", "can you research this", "draft it", "ship it")
           - `compatibility: Hermes Agent`
           - `metadata.tags` including `workflow`, `bundle`, and domain-relevant tags
        
           Body content:
        
           ```markdown
           # <Bundle Name>
        
           A <N>-phase workflow covering <brief summary>.
        
           ## Pipeline
        
           <Phase 1> → <Phase 2> → <Phase 3> → ...
        
           (Include a Mermaid flowchart graph LR showing the phase sequence.)
        
           ## Sub-Skills
        
           | Phase | Skill | Trigger |
           |-------|-------|---------|
           | <name> | `<bundle-name>/<phase-file>` | <when to load> |
           | ... | ... | ... |
        
           ## Navigation
        
           When you load this umbrella, identify which phase the user is in,
           load the corresponding sub-skill via skill_view(), and follow its
           instructions. Use the transition signals in each sub-skill to know
           when to move to the next phase.
        
           ## Pipeline Heuristics
        
           - Can the user enter at any phase, or must they start at Phase 1?
           - Are any phases automatic (e.g., refine always follows draft)?
           - What's the relationship between phases (sequential, branching, optional)?
           ```
        
           **Category choice:** Place the bundle in a category that matches where its
           sub-skills live (e.g., `content` for blogging pipelines, `devops` for
           deployment workflows). Ask the user if unsure.
        1. **manifest.yaml** — Use `../../templates/manifest.yaml.tmpl`. Substitute:
           - `{{BUNDLE_NAME}}` — the bundle name
           - `{{PHASES}}` — each phase with its trigger keywords, entry signals,
             typical tools, and exit signals
           - `{{HAS_KANBAN}}` — true/false based on kanban decision
        
        2. **README.md** — Write from scratch (no template needed, it's prose).
           Structure:
        
           ```markdown
           # <Bundle Name>
        
           Generated by workflow-architect on <date>.
        
           This bundle covers a <archetype>-style workflow with <N> phases.
        
           ## Skills
        
           | Skill | Trigger | When it fires |
           |-------|---------|---------------|
           | <name> | <trigger description> | <when to load> |
        
           ## Loading
        
           Skills in this bundle are loaded automatically by trigger conditions.
           To load a specific skill: `skill_view(name='<bundle-name>/<skill-name>')`
        
           ## Kanban
        
           (Only if kanban exists) This workflow maps to a kanban board with <N> lanes.
           ```
        
        3. **Sub-skills** — For each phase in `workflow-architect:state:phases`,
           generate a `.md` file in `skills/` using `../../templates/skill-skeleton.md`.
        
           Naming convention: `kebab-case-phase-name.md` (e.g., `morning-triage.md`).
        
           Each sub-skill file is a valid Agent Skills SKILL.md with:
           - `name` matching the filename (without .md)
           - `description` that includes trigger keywords from the phase's typical
             openers and tools
           - `compatibility: Compatible with any agent supporting the Agent Skills format`
           - Body sections:
             - **When to use** — the trigger condition in natural language
             - **What to do** — step-by-step instructions for the agent in this phase
             - **Transition signals** — what the user typically says or does that
               transitions out of this phase
             - **What to tell the user** — guidance on how the agent should communicate
               during this phase
        
        4. **decision-map.md** — Use `../../templates/decision-map.md.tmpl`. Substitute:
           - `{{WORKFLOW_NAME}}` — bundle name
           - `{{PHASE_NODES}}` — phase names
           - `{{BRANCHING}}` — decision diamonds
           - `{{ENTRY}}` — how sessions start
           - `{{EXITS}}` — how sessions end
        
        5. **AGENTS.md** — Standard agent loading instructions for this bundle.
           Short — just says which skills exist and when to load them.
        
        6. **kanban/ directory** — Only if the kanban-decision-criteria.md reference
           indicates kanban is appropriate. Generates three files:
        
           a) **kanban/board-setup.sh** — Use `../../templates/kanban-board-setup.sh.tmpl`.
              Substitutes:
              - `{{BOARD_SLUG}}` — bundle name (kebab-case)
              - `{{BOARD_NAME}}` — title-case version or user-provided name
              - `{{FIRST_PHASE_SKILL}}` — skill file for the first phase
              - `{{FIRST_PHASE_PRIORITY}}` — priority for first-phase tasks
              - `{{GENERATION_DATE}}` — current date
        
              The setup script creates the board via `hermes kanban boards create`
              and prints instructions for adding work.
        
           b) **kanban/task-blueprints.yaml** — Use `../../templates/kanban-task-blueprints.yaml.tmpl`.
              Substitutes:
              - `{{BLUEPRINT_ENTRIES}}` — one blueprint entry per phase, each with:
                - `phase:` — phase name (kebab-case)
                - `title_template:` — e.g. "Build: {{feature}}"
                - `skill:` — path to the sub-skill file (e.g. `my-workflow/build`)
                - `default_priority:` — descending from first phase (highest) to last
                - `initial_status:` — first phase = `todo`, rest = `ready`
                - `body:` — instructions for the worker: what skill to load,
                  definition of done, and transition to next phase
        
           c) **kanban/README.md** — Brief usage guide explaining how to set up and
              use the board. Structure:
        
              ```markdown
              # Kanban Board: <Bundle Name>
        
              This workflow maps to a Hermes Kanban board with <N> phases in sequence.
        
              ## Setup
        
              Run `kanban/board-setup.sh` to create the board:
              ```bash
              bash kanban/board-setup.sh
              ```
        
              The script creates the board and switches to it. If you prefer to set
              it up manually:
              ```bash
              hermes kanban boards create <bundle-name> --name "<Bundle Name>"
              ```
        
              ## Task Lifecycle
        
              <Phase 1> → <Phase 2> → <Phase 3>
        
              Each phase's task depends on the previous phase's task completing.
              When a task is done, the next phase's task auto-promotes to "ready"
              and the dispatcher picks it up.
        
              ## Adding Work
        
              Create a task for the first phase:
              ```bash
              hermes kanban create "Build: <feature description>" \\
                --skill <bundle-name>/<phase-1-skill> \\
                --priority 3
              ```
        
              Then create subsequent-phase tasks with `--parent` pointing to the
              first task's ID:
              ```bash
              hermes kanban create "Review: <feature>" \\
                --parent <task-id> \\
                --skill <bundle-name>/<phase-2-skill> \\
                --priority 2
              ```
        
              ## Task Blueprints
        
              See `kanban/task-blueprints.yaml` for template definitions of each
              phase's task, including default priorities, skill mappings, and
              worker instructions.
              ```
        
        7. **references/generated-from.md** — Metadata about the generation process:
        
           ```markdown
           # Generated From
        
           - **Skill:** workflow-architect
           - **Mode:** active | passive
           - **Date:** <date>
           - **Archetype:** <archetype>
           - **Convergence Score:** <score>
           ```
        
        8. **Register sub-skills with Hermes skill system** — For each sub-skill `.md`
           file written in step 3, register it so it appears in `skills_list()` and
           can be loaded with `skill_view()`. This is the critical step that makes
           generated skills actually usable by the agent.
        
           For each sub-skill file in `skills/<name>.md`:
        
           ```python
           skill_manage(action='create',
               name='<bundle-name>-<skill-name>',
               content=read_file('<bundle-path>/skills/<name>.md')['content'],
               category='generated')
           ```
        
           This creates a proper skill directory with `SKILL.md` entry point, making
           the sub-skill discoverable and loadable. The sub-skill's existing valid
           Agent Skills frontmatter (name, description, license, tags) is used as-is.
        
           **Why separate registration is needed:** The `skill_manage()` call also
           handles the skill directory structure (`SKILL.md` at root, not `<name>.md`
           in a `skills/` subdirectory). Without this step, the sub-skill files exist
           on disk but no Hermes mechanism discovers them. Only the umbrella SKILL.md
           (registered in step 0) would be loadable.
        
           **Verification:** After registering all sub-skills, verify at least one:
           ```python
           skill_view(name='<bundle-name>-<first-phase-name>')
           ```
        
           If it errors, the registration failed — check that the sub-skill file's
           frontmatter `name` field matches and the content has valid YAML.
        
        ## Kanban Decision
        
        Before generating kanban files, consult `../../references/kanban-decision-criteria.md`
        to decide whether a board is appropriate. The decision depends on the phases
        and branching structure discovered:
        
        - If phases form a clear linear sequence (A → B → C → D), kanban adds value
        - If branching is emergent (session depends on context), kanban is likely inappropriate
        - If the user mentioned waiting on others, hand-offs, or status tracking, kanban is a strong fit
        
        Present the decision to the user:
        
        ```
        "Your workflow has a [linear/emergent] structure. A kanban board [would/wouldn't]
        add much value here because [reason]. [If yes: I'll add one to the bundle.]"
        ```
        
        8. **Register sub-skills** — For each generated sub-skill `.md` file in
           `skills/`, register it so Hermes can discover it via `skill_view()` and
           `skills_list()`:
        
           ```
           For each sub-skill file `skills/<phase-name>.md`:
             Read the file content
             skill_manage(
               action='create',
               name='<bundle-name>/<phase-name>',
               content=file_content
             )
           ```
        
           This makes each sub-skill loadable as `skill_view('<bundle-name>/<phase-name>')`.
           The bundle name prefix prevents naming collisions with other skills.
        
           If `skill_manage` is not available in the agent's toolset, note this for
           the user and suggest they run the registration manually.
        
        ## Cleanup
        
        After writing all files:
        
        1. Verify the umbrella registered successfully:
           ```
           skill_view(name='<bundle-name>')
           ```
           If it returns `status: available`, proceed. If not found, re-run the
           `skill_manage(action='create')` call.
        
        2. Remove all `workflow-architect:state:*` memory entries
           (`memory(action='remove', target='memory', old_text='workflow-architect:state:')`)
        2. Remove all `workflow-architect:state:*` memory entries
           (`memory(action='remove', target='memory', old_text='workflow-architect:state:')`)
        2. Tell the user where the bundle was written and what it contains
        3. Verify the umbrella loads correctly with `skill_view(name='<bundle-name>')`
           — if it doesn't resolve, check that `skill_manage(action='create')` was run
           and the SKILL.md has valid frontmatter
        4. Verify at least one registered sub-skill loads:
           `skill_view(name='<bundle-name>-<first-phase-name>')`
        5. Suggest they enter the workflow via any trigger phrase covered by the
           umbrella's description, or by manually loading the umbrella skill
        
        ## When not to use
        
        Do not load this skill without a converged workflow model — it requires the `workflow-architect:state:*` entries produced by the interviewer or observer. If the workflow has not been discovered yet, load the interviewer (active) or observer (passive) first.
        
    • interviewer
      • evals
        • evals.json 5.4 KB
          {
            "schema_version": 1,
            "skill_name": "interviewer",
            "evals": [
              {
                "id": "session-opener-progression",
                "prompt": "I want you to figure out how I work so you can build me a workflow bundle. Let's start.",
                "expected_output": "Scenario: opening the interview. The agent loads the interviewer sub-skill and starts with a broad session-opener question ('Walk me through a typical session from the very start.') rather than a battery of discrete questions. It records the user's entry point (e.g. 'check task list, prioritize by urgency') into the state model and adapts the next probe based on the answer, not by asking every opener in sequence.",
                "assertions": [
                  "The interviewer sub-skill is loaded",
                  "The interview opens with a broad session-opener question",
                  "The user's stated entry point is recorded into the state model",
                  "The next probe adapts to the user's answer rather than being sequential"
                ]
              },
              {
                "id": "branching-signal-detection",
                "prompt": "Usually I check open PRs assigned to me first. If there are none, I look at my kanban board and pick the top item.",
                "expected_output": "Scenario: branching detection. The agent recognizes the conditional language ('if ... otherwise ...') as a branching signal and records it (e.g. 'pending PRs → review mode, otherwise → kanban triage'), then probes the branch with a follow-up question (e.g. 'after you finish the PR review, what tells you you're done?'). It does not treat the two branches as a single linear phase.",
                "assertions": [
                  "The conditional ('if/otherwise') is recognized as a branching signal",
                  "The branching signal is recorded in the state model",
                  "A follow-up probe targets the just-identified branch",
                  "The branches are not flattened into a single linear phase"
                ]
              },
              {
                "id": "phase-discovery-and-transition",
                "prompt": "Most sessions start with triage. Then I do deep work on whatever I picked, and I switch to research mode if I hit something unfamiliar.",
                "expected_output": "Scenario: phase discovery with mode distinction and transition signals. The agent identifies distinct modes (triage, deep work, research) as phases, listens for the mode-switch language, and probes for transition signals that mark when the user leaves one phase for another. It records phases with typical tools/openers/exits rather than a single undifferentiated workflow.",
                "assertions": [
                  "Distinct modes (triage, deep work, research) are identified as phases",
                  "Mode-switch language is captured as branching/mode distinction",
                  "Transition signals between phases are probed",
                  "Phases are recorded with typical tools, openers, and exits"
                ]
              },
              {
                "id": "convergence-check-presentation",
                "prompt": "We've covered my entry points, three phases, two branching signals, my tools, and how I wind down sessions. Are we done?",
                "expected_output": "Scenario: convergence evaluation. The agent checks the convergence criteria (3+ phases, entry points, branching, tools mapped to 2+ phases, exit criteria) and the convergence score (>= 0.6). If met, it presents a summary of phases, branching, tools, and pain points and asks the user to confirm before generating the bundle, then loads bundle-builder on confirmation. If not met, it continues probing rather than presenting prematurely.",
                "assertions": [
                  "The convergence criteria and score are evaluated against the state model",
                  "A summary of phases, branching, tools, and pain points is presented",
                  "The user is asked to confirm the picture before generating",
                  "On confirmation, bundle-builder is loaded"
                ]
              },
              {
                "id": "refinement-loop-after-correction",
                "prompt": "That summary is mostly right, but I don't always do research inside deep work — it's a separate session entirely. Update your model.",
                "expected_output": "Scenario: refinement after user correction. The agent accepts the correction, updates the state model (splitting the research phase out of deep work), and re-checks convergence before presenting again or proceeding. It does not argue with the user or retain the incorrect model.",
                "assertions": [
                  "The user's correction is accepted and reflected in the state model",
                  "The affected phase is updated (research separated from deep work)",
                  "Convergence is re-evaluated after the update",
                  "The agent does not proceed with the stale incorrect model"
                ]
              },
              {
                "id": "state-persistence-across-turns",
                "prompt": "Let's pause the interview and pick it up tomorrow — I don't want to lose what we've mapped so far.",
                "expected_output": "Scenario: state persistence. The agent persists all discovered dimensions to memory under the workflow-architect:state: prefix (entry_points, phases, branching, pain_points, exit_criteria, convergence_score) so the interview can resume across turns without restarting. The output confirms the state was saved and notes the known key-prefix convention.",
                "assertions": [
                  "Interview state is persisted under the workflow-architect:state: prefix",
                  "All discovered dimensions (entry_points, phases, branching, pain_points, exit_criteria, convergence_score) are saved",
                  "The state is stored in a way that survives across turns",
                  "A note confirms the interview can resume without losing progress"
                ]
              }
            ]
          }
          
      • README.md 513 B
        # Workflow Interviewer
        
        ## Why Install This Skill
        
        Guides a structured conversation that turns an informal work process into clear phases and transition signals.
        
        ## What You Get
        
        | Content | Purpose |
        |---|---|
        | `SKILL.md` | Adaptive workflow-discovery interview |
        
        ## Quick Start
        
        Load it through workflow-architect’s active mode and answer the prompts naturally.
        
        ## Triggers
        
        Use when someone wants to describe, map, or formalize their workflow.
        
        ## Requirements
        
        Hermes memory tools for multi-turn state.
        
      • SKILL.md 7.5 KB
        ---
        name: interviewer
        description: Discover the user's workflow through 8-15 adaptive questions for
          workflow-architect, mapping phases, branching signals, tool preferences, and friction
          points. Loaded by the umbrella workflow-architect skill when running in active mode.
        license: MIT
        compatibility: Hermes Agent — uses memory tool for state persistence
        metadata:
          tags: workflow, interview, discovery, process
          spec-version: '1.0'
        ---
        
        # Interviewer — Active Workflow Discovery
        
        This is the core of workflow-architect's **active interrogation mode**. It runs
        a structured but adaptive conversation with the user to discover how they work.
        
        ## State Model
        
        The interview builds a structured representation of the user's workflow.
        State is stored via the memory tool with the prefix
        `workflow-architect:state:` so it survives across turns.
        
        ```yaml
        state:
          entry_points: []          # How sessions start
          phases: []                # Distinct phases discovered
            - name: string
              description: string
              typical_tools: []
              typical_openers: []   # What user says to enter this phase
              typical_exits: []     # What user says to leave this phase
          branching: []             # Decisions and what drives them
          pain_points: []
          exit_criteria: []         # How sessions end
          archetype: null           # Best match from workflow-archetypes
          convergence_score: 0      # 0.0 to 1.0 — enough to generate bundle?
        ```
        
        ## Question Progression
        
        The interview follows a branching script. Each answer feeds the state model
        and determines the next probe. Do not ask all questions sequentially — adapt
        based on what the user has already told you.
        
        ### Phase 1: Session Opener (1-2 questions)
        
        Start broad. The goal is to understand the user's self-model of their workflow.
        
        ```
        Agent: "Walk me through a typical session from the very start.
                What's the first thing you do when you open this agent?"
        
        User:  "I usually check my task list, see what's urgent, and jump into the
                most pressing issue."
        
        Agent: [Records entry point: "check task list, prioritize by urgency"]
               [Probes for structure: "After that initial triage — what happens
                next? Does the session settle into a rhythm?"]
        ```
        
        **Alternative openers** (pick one based on the user's stated context):
        - "Describe a session that went really well. What did it look like from start to finish?"
        - "What does a typical day look like, broken into sessions?"
        - "If I looked at your last 10 sessions, what patterns would I see?"
        
        ### Phase 2: Phase Discovery (2-4 questions)
        
        Probe for distinct modes or stages. Listen for transition language.
        
        Key probes (use as follow-ups, not a checklist):
        - "After that first step — what determines what you do next?"
        - "Are there different *modes* you shift between? Like triage mode vs building mode vs research mode?"
        - "What does a deep work session look like vs a quick check-in session?"
        - "Do you find yourself switching between types of work within a single session?"
        
        **Branching detection — listen for these signals:**
        - "If X, then Y" — conditional logic in the workflow
        - "Depends on whether..." — branching signal
        - "Usually I do A, but sometimes I do B" — mode distinction
        - "After that I always..." — deterministic phase transition
        
        When you hear a branching signal, probe it:
        ```
        User:  "If there are open PRs assigned to me, I review those first.
                Otherwise I look at my kanban board."
        Agent: [Records branching signal: "pending PRs → review mode,
                otherwise → kanban triage"]
               "Got it. After you finish the PR review — what's the signal
                that tells you you're done with that and ready to move on?"
        ```
        
        ### Phase 3: Tool & Context Probe (2-3 questions)
        
        Map tools, context needs, and environmental patterns.
        
        - "In each of those modes — what tools do you reach for? Any commands you type over and over?"
        - "Are there specific files, boards, or dashboards you check first thing?"
        - "Do you work better in certain contexts? (Morning vs afternoon, quiet vs busy, alone vs paired)"
        
        ### Phase 4: Pain Point & Flow Probe (1-2 questions)
        
        The most valuable output of this skill is identifying where the workflow
        breaks down. Be patient here — users often haven't articulated this.
        
        - "Is there a step in this flow that consistently feels harder than it should be?"
        - "If you could wave a wand and fix one thing about how you work, what would it be?"
        - "Is there a hand-off or transition that always feels clunky?"
        
        ### Phase 5: Exit & Rhythm Probe (1-2 questions)
        
        - "How do most of your sessions end? Do you have a wind-down routine?"
        - "Do you ever leave sessions abruptly? What causes that — interruption, fatigue, task completion?"
        
        ### Phase 6: Convergence Check
        
        After each answer, evaluate whether you have enough to generate a useful bundle.
        
        **Minimum convergence criteria:**
        - At least 3 phases identified (can include entry as a phase)
        - Entry points documented
        - At least one branching signal
        - Tools mapped to at least 2 phases
        - Exit criteria identified
        - Convergence score >= 0.6
        
        **Convergence scoring:**
        | Criteria met | Score contribution |
        |---|---|
        | 3+ phases | 0.3 |
        | Entry points known | 0.15 |
        | Branching signals found | 0.2 |
        | Tools mapped to 2+ phases | 0.15 |
        | Exit criteria known | 0.1 |
        | Pain points identified | 0.1 |
        
        When convergence score >= 0.6, present a summary to the user:
        
        ```
        "I think I have enough to generate your workflow bundle. Here's what
        I've mapped out so far:
        
        [Summary of phases, branching, tools, and pain points]
        
        Does this look like an accurate picture of how you work?
        If yes, I'll generate the bundle. If not, tell me what I got wrong
        and I'll refine it."
        ```
        
        If the user confirms, load `skills/bundle-builder/SKILL.md` and follow its
        instructions to generate the output bundle.
        
        If the user corrects or refines, update the state and re-check convergence.
        
        ## State Persistence
        
        Use the memory tool to persist state across turns:
        
        ```
        memory(action='add', target='memory',
               content='workflow-architect:state:entry_points=["check task list, prioritize"]')
        ```
        
        Use a known key prefix per dimension so the bundle-builder can read all
        state entries:
        
        | Key | Value type |
        |-----|------------|
        | `workflow-architect:state:entry_points` | JSON array |
        | `workflow-architect:state:phases` | JSON array of phase objects |
        | `workflow-architect:state:branching` | JSON array of signal objects |
        | `workflow-architect:state:pain_points` | JSON array |
        | `workflow-architect:state:exit_criteria` | JSON array |
        | `workflow-architect:state:convergence_score` | Float 0-1 |
        | `workflow-architect:state:archetype` | String or null |
        
        **Important:** On the final turn (after bundle generation), clean up these
        memory entries so they don't pollute future sessions:
        ```
        memory(action='remove', target='memory',
               old_text='workflow-architect:state:')
        ```
        
        The bundle-builder sub-skill handles reading all `workflow-architect:state:*`
        entries from memory and writing the output bundle files.
        
        ## Archetype Matching
        
        After each answer, check the shared `../../references/workflow-archetypes.md` file to see
        if the user's answers match a known archetype. If they do, note it in state
        and use it to seed better follow-up questions (e.g., "For a morning triage
        workflow, people often have a 'stale items bucket' — do you have something
        like that?")
        
        ## When not to use
        
        Do not use this skill for passive observation (load the observer instead), or when the user prefers you to infer from what they already did rather than be interrogated. It is for active, interactive discovery only.
        
    • observer
      • evals
        • evals.json 4.3 KB
          {
            "schema_version": 1,
            "skill_name": "observer",
            "evals": [
              {
                "id": "dormant-until-trigger",
                "prompt": "Let's work on refactoring the auth service. No workflow analysis needed right now.",
                "expected_output": "Scenario: staying dormant without a trigger phrase. The observer sub-skill has been loaded in passive mode, but none of the trigger phrases (e.g. 'catalog my workflow', 'what's my workflow', 'analyze my process', 'figure out what I do', 'work it out from what I just did') appear in the user's message. The agent does nothing and does not announce the observer's presence, letting the session proceed normally.",
                "assertions": [
                  "The observer does not act in the absence of a trigger phrase",
                  "No trigger phrase is detected in the user's message",
                  "The observer does not announce its presence",
                  "The normal session proceeds uninterrupted"
                ]
              },
              {
                "id": "insufficient-context-handling",
                "prompt": "What's my workflow?",
                "expected_output": "Scenario: trigger fired but context too thin. The agent detects the trigger phrase, then counts substantive user messages in the session. If fewer than 5 substantive turns exist, it responds that it does not have enough session context, states the approximate turn count, and offers active interrogation mode (/workflow-architect) instead. It does not guess a workflow from insufficient data.",
                "assertions": [
                  "The trigger phrase is detected",
                  "The agent counts substantive user turns before inferring",
                  "With fewer than 5 substantive turns, the agent states the low count",
                  "The agent offers active interrogation mode instead of guessing"
                ]
              },
              {
                "id": "session-inference-from-transcript",
                "prompt": "Analyze my process from this session. Here's everything we've done today.",
                "expected_output": "Scenario: inference from an existing session transcript. With enough context, the agent runs the structured inference prompt against the session, extracting entry patterns, phases and their triggers, branching decisions, tools used, pain points (e.g. repeated corrections), and exit patterns, and returns findings as a structured workflow state model matching the workflow-architect format. It bases the model on what actually happened, not assumptions.",
                "assertions": [
                  "The structured inference prompt is run against the session context",
                  "Entry patterns, phases, branching, tools, pain points, and exit are extracted",
                  "Findings are returned in the workflow-architect state model format",
                  "Inferences are grounded in what actually happened in the session"
                ]
              },
              {
                "id": "cross-session-pattern-detection",
                "prompt": "Work it out from what I just did, and use my last few sessions too — a single session probably isn't enough.",
                "expected_output": "Scenario: cross-session pattern detection. The agent pulls the 2-3 most recent related sessions (via session_search) in addition to the current one, because a single session may not reveal the full workflow. It notes the number of sessions examined and distinguishes recurring patterns from one-off behavior in its findings.",
                "assertions": [
                  "Recent related sessions are pulled in addition to the current one",
                  "The agent uses multiple sessions to detect recurring patterns",
                  "The number of sessions examined is reported",
                  "Recurring patterns are distinguished from one-off behavior"
                ]
              },
              {
                "id": "findings-presentation-and-handoff",
                "prompt": "Figure out what I do from this session.",
                "expected_output": "Scenario: presenting findings and handing off to generation. After inference, the agent presents a summary of the inferred workflow to the user (similar to the interviewer's convergence summary), noting how many sessions were examined, and asks whether it looks right. If the user confirms, the agent loads bundle-builder and follows its instructions to generate the bundle.",
                "assertions": [
                  "A summary of the inferred workflow is presented",
                  "The summary notes the number of sessions examined",
                  "The user is asked to confirm the picture",
                  "On confirmation, bundle-builder is loaded to generate the bundle"
                ]
              }
            ]
          }
          
      • README.md 521 B
        # Workflow Observer
        
        ## Why Install This Skill
        
        Infers a workflow from a substantive session without interrupting the work with an interview.
        
        ## What You Get
        
        | Content | Purpose |
        |---|---|
        | `SKILL.md` | Passive workflow-analysis instructions |
        
        ## Quick Start
        
        Load it through workflow-architect’s passive mode after a session with meaningful work history.
        
        ## Triggers
        
        Use when someone asks to infer or catalogue the process they just followed.
        
        ## Requirements
        
        Hermes session-search and context-scanning tools.
        
      • SKILL.md 4.5 KB
        ---
        name: observer
        description: Monitor a session passively to infer the user's workflow from what
          actually happened, staying dormant until a trigger phrase activates observation
          for workflow-architect.
        license: MIT
        compatibility: Hermes Agent — uses session_search and context scanning
        metadata:
          tags: workflow, observation, discovery, passive
          spec-version: '1.0'
        ---
        
        # Observer — Passive Workflow Discovery
        
        This is the **passive observation mode** of workflow-architect. Unlike the
        interviewer, which asks questions, the observer *watches and infers*.
        
        ## How It Works
        
        1. The observer loads silently via `/workflow-architect passive`
        2. It does nothing until a trigger phrase is detected
        3. On trigger, it scans the current session's message history using a
           structured inference prompt
        4. The output is a workflow state model (same structure as the interviewer
           produces), which feeds into the bundle-builder sub-skill
        
        ## Trigger Phrases
        
        The observer activates when the user says any of these:
        - "catalog my workflow"
        - "what's my workflow"
        - "analyze my process"
        - "figure out what I do"
        - "work it out from what I just did"
        
        If none of these are detected in the user's message, the observer remains
        dormant. Do not announce its presence — the user may not remember loading
        it in passive mode.
        
        ## Activation Protocol
        
        When a trigger phrase is detected:
        
        1. **Check session depth.** Count substantive user messages (excluding
           greetings, meta-comments about the agent, and one-word replies). If
           fewer than 5 substantive messages, respond:
        
           ```
           "I don't have enough session context to work with yet. I've seen about
           [N] substantive turns, and I need more to find reliable patterns.
           Try active interrogation mode instead: /workflow-architect"
           ```
        
        2. **If enough context exists, run inference.** Use the following structured
           prompt against the session context. You may use session_search or browser
           console to review the session transcript if needed.
        
           ```
           You are analyzing a session transcript to extract workflow patterns.
           Look at the user's messages and your responses. Identify:
        
           1. ENTRY PATTERNS — How did the session start? What was the user's
              first request? Was it a check-in, a specific task, a question?
        
           2. PHASES — Where did the session shift focus? What triggered each
              shift? (A new request, a status check, a tool output?)
        
           3. BRANCHING — Were there decision points where the user could have
              gone in different directions? What determined the direction taken?
        
           4. TOOLS — What tools did the user reach for? What commands did they
              ask you to run? What contexts did they reference?
        
           5. PAIN POINTS — Were there moments of friction? (Repeated corrections,
              stops-and-restarts, "no, not that" type corrections)
        
           6. EXIT — How did the session end (or approach ending)? Was it a
              natural completion, an interruption, or something else?
        
           Return your findings as a structured JSON document matching the
           workflow-architect state model format.
           ```
        
        3. **If the session context is available via session_search**, also pull
           the 2-3 most recent related sessions for cross-session pattern detection.
           A single session may not reveal the full workflow; multiple sessions do.
        
        4. **Present findings to the user:**
        
           ```
           "I looked through this session (and [N] recent related sessions) and
           found some patterns in how you work:
        
           [Summary of inferred workflow, similar to interviewer's convergence summary]
        
           Does this look right? If yes, I'll generate a bundle. If not, tell me
           what I got wrong — or switch to active mode for a more thorough conversation."
           ```
        
        5. If the user confirms, load `skills/bundle-builder/SKILL.md` and follow
           its instructions to generate the output bundle.
        
        ## Limitations
        
        - **Single-session bias:** One session may not represent your full workflow.
          The observer does its best work with multiple sessions of context.
        - **Action-inference gap:** The observer only sees what *happened*, not
          what you *intended* or *considered and rejected*. Active interrogation
          captures richer intentional data.
        - **Silent mode:** The observer does not announce itself when loading.
          This is intentional — passive mode is meant to be invisible until triggered.
        
        ## When not to use
        
        Do not use this skill for interactive discovery (load the interviewer instead), or when the session context is too thin to infer reliable patterns — active interrogation is more effective there. It is for passively observing an existing session only.
        
  • templates
    • decision-map.md.tmpl 725 B · in bundle
    • kanban-board-setup.sh.tmpl 784 B · in bundle
    • kanban-task-blueprints.yaml.tmpl 535 B · in bundle
    • manifest.yaml.tmpl 152 B · in bundle
    • skill-skeleton.md 610 B
      ---
      name: {{PHASE_NAME}}
      description: >-
        {{TRIGGER_DESCRIPTION}}
      license: MIT
      compatibility: Compatible with any agent supporting the Agent Skills format
      metadata:
        tags: [workflow, generated]
        spec-version: "1.0"
      ---
      
      # {{PHASE_NAME}}
      
      This skill is part of the **{{BUNDLE_NAME}}** bundle, generated by
      workflow-architect on {{GENERATION_DATE}}.
      
      ## When to Use
      
      {{WHEN_TO_USE}}
      
      ## What to Do
      
      {{WHAT_TO_DO}}
      
      ## Transition Signals
      
      This phase typically ends when:
      
      {{TRANSITION_SIGNALS}}
      
      ## What to Tell the User
      
      During this phase, communicate with the user in this style:
      
      {{COMMUNICATION_GUIDANCE}}
      
  • AGENTS.md 2.9 KB
    # Workflow Architect Bundle — Agent Instructions
    
    ## Loading
    
    ### Active Mode (Interview)
    1. Load `workflow-architect` umbrella SKILL.md for context
    2. Then load `skills/interviewer/SKILL.md` — the interview protocol
    3. After convergence, load `skills/bundle-builder/SKILL.md` to generate the bundle
    4. Clean up `workflow-architect:state:*` memory entries after generation
    
    ### Passive Mode (Observation)
    1. Load `workflow-architect` umbrella SKILL.md for context
    2. Then load `skills/observer/SKILL.md` — the observation protocol
    3. Wait for trigger phrase before taking any action
    4. On trigger, scan session context and infer workflow
    5. Load `skills/bundle-builder/SKILL.md` to generate the bundle
    6. Clean up `workflow-architect:state:*` memory entries after generation
    
    ## Output Location
    
    Generated bundles are written to `~/.hermes/skills/<category>/<bundle-name>/` via the
    `write_file` tool. The umbrella SKILL.md is registered via `skill_manage(action='create')`
    and sub-skills are registered individually so they appear in `skills_list()` and can be
    loaded with `skill_view()`.
    
    ## Registration
    
    The umbrella SKILL.md is registered with `skill_manage(action='create')` in step 0 of the
    bundle-builder. Each generated sub-skill is also registered (step 8) so it's immediately
    discoverable by the agent's skill system. Verify with `skill_view(name='<bundle-name>')`
    and `skill_view(name='<bundle-name>-<first-phase-name>')`.
    
    ## Registration
    
    Both the umbrella `SKILL.md` and each sub-skill `.md` file in the generated
    bundle are registered via `skill_manage(action="create")` so they appear in
    `skills_list()` and are discoverable by the agent. Registration happens
    during generation — no manual step required.
    
    - **Umbrella** — registered under `<bundle-name>` (the bundle root skill)
    - **Sub-skills** — registered under `<bundle-name>/<phase-name>`
    
    The umbrella's `description` frontmatter contains broad trigger conditions
    that let the agent auto-detect the bundle in future sessions when the user's
    conversation cues match a known workflow phase.
    
    ## Environment
    
    No environment variables required. State is stored via memory tool with
    the prefix `workflow-architect:state:`.
    
    ## Reference Files
    
    | File | Purpose |
    |------|---------|
    | `references/workflow-archetypes.md` | Pattern library for convergence detection |
    | `references/trigger-condition-patterns.md` | Trigger condition format spec |
    | `references/kanban-decision-criteria.md` | When to include kanban |
    | `references/example-output/developer-triage/` | Worked example of a generated bundle |
    | `templates/skill-skeleton.md` | Template for generated sub-skills |
    | `templates/manifest.yaml.tmpl` | Template for bundle manifest |
    | `templates/kanban-board-setup.sh.tmpl` | Template for board creation script |
    | `templates/kanban-task-blueprints.yaml.tmpl` | Template for phase-to-task mappings |
    | `templates/decision-map.md.tmpl` | Template for Mermaid decision map |
    
  • manifest.yaml 2.3 KB
    # Bundle manifest (bundle-manifest-v1) — see schemas/bundle-manifest-v1.schema.json
    # and docs/bundle-manifest-design.md. Paths are relative to this bundle dir.
    
    schema_version: 1
    bundle_name: workflow-architect
    
    purpose: >-
      Discover a user's actual workflow through active interrogation or passive
      observation, then generate a tailored Agent Skills bundle that encodes it as
      loadable skills with trigger conditions, a decision map, a manifest, and an
      optional kanban board — turning a session that feels aimless into structure.
    
    audience: >-
      Users and agents that want to formalize how they work — understand their own
      process, encode it as trigger-driven skills they can reuse, or share it with
      collaborators. Not for single factual questions or tasks already owned by a
      more specific skill.
    
    stages:
      - name: Active interview
        skills:
          - skills/interviewer/SKILL.md
      - name: Passive observation
        skills:
          - skills/observer/SKILL.md
      - name: Synthesis and generation
        skills:
          - skills/bundle-builder/SKILL.md
    
    included_skills:
      - skills/interviewer/SKILL.md
      - skills/observer/SKILL.md
      - skills/bundle-builder/SKILL.md
    
    prerequisites:
      - artifact: Session context with enough turns for observation (or user answers for interview)
        skill: skills/observer/SKILL.md
      - artifact: Convergence on workflow phases, branching signals, and tool preferences
        skill: skills/interviewer/SKILL.md
    
    outputs:
      - skills-bundle
      - decision-map
      - manifest
      - kanban-board
    
    handoffs:
      - to: user
        artifact: skills-bundle
        note: >-
          The generated bundle is written to the host skill directory and
          registered so the umbrella and sub-skills load on trigger phrases.
      - to: user
        artifact: decision-map
        note: >-
          The Mermaid decision map visualizes workflow phases and branching
          signals for review and sharing.
      - to: user
        artifact: manifest
        note: >-
          The generated manifest maps skill names to trigger conditions, entry
          points, and transition signals for the bundle.
      - to: user
        artifact: kanban-board
        note: >-
          The kanban board is included only when the workflow follows a predictable
          linear path where WIP limits and lane transitions add value.
    
    conflicts: []
    
    eval_suite:
      - evals/evals.json
    
  • README.md 2.3 KB
    # Workflow Architect — Discover and Encode Your Actual Workflow
    
    A meta-skill that helps you understand how you actually work, then generates a loadable skills bundle encoding your workflow as agent-triggerable skills. Turns implicit process into explicit, reusable capability.
    
    ## Why Install This Skill
    
    When your agent loads this skill, it becomes a **process discovery specialist** who can:
    
    - **Discover your workflow** — through active interview (8-15 guided questions) or passive observation (analyzing what you actually do)
    - **Generate a skills bundle** — loadable skills with trigger conditions that encode each phase of your workflow
    - **Create a decision map** — Mermaid flowchart visualizing your workflow as your agent sees it
    - **Optionally set up a kanban board** — if your workflow has a predictable linear path
    - **Make it permanent** — generated bundle is registered in your agent's skill system for future sessions
    
    ## What You Get
    
    | Directory | Purpose |
    |-----------|---------|
    | `SKILL.md` | Bundle umbrella — two modes: active interrogation or passive observation |
    | `skills/` | 3 sub-skills: interviewer (active mode), observer (passive mode), bundle-builder (generation engine) |
    | `references/` | Workflow archetypes library, trigger condition patterns, kanban decision criteria |
    | `templates/` | 4 templates: skill skeleton, manifest, kanban setup, decision map |
    | `references/example-output/` | Two worked examples: developer pipeline, developer triage |
    
    ## Two Modes
    
    - **Active Interrogation** — guided interview that asks structured questions and branches based on your answers.
    - **Passive Observation** — watches what you do in a session and infers your workflow patterns without interrupting.
    
    Both modes feed into the bundle-builder, which generates the final skills bundle.
    
    ## Triggers
    
    Load this when you want to understand your own process, formalize a workflow, share it with collaborators, or give structure to a session that feels aimless.
    
    ## Requirements
    
    Hermes Agent (uses skill_view, memory, session context scanning, write_file for bundle generation). Output bundles are standard Agent Skills format.
    
    
    ## Quick Start
    
    Start with the setup and first workflow in SKILL.md, then use the linked resources for the specific task you need to complete.
    
  • SKILL.md 7.6 KB
    ---
    name: workflow-architect
    description: >-
      Discover your actual workflow through conversation or observation, then generate a
      tailored skills bundle that encodes it as loadable agent skills with trigger conditions.
      Use when you want to understand your own process, formalize it, or share it with
      collaborators. Also use when a session feels aimless — this skill gives it structure. Do
      not use this skill for unrelated requests; route to the nearest named specialist.
    license: MIT
    compatibility: Hermes Agent — uses skill_view(), memory tool, session context scanning,
      and write_file for bundle generation. Output bundles are standard Agent Skills.
    metadata:
      tags: workflow, meta, productivity, skills-bundle, onboarding, process
      spec-version: '1.0'
    ---
    
    # Workflow Architect
    
    A meta-skill that helps you (and your agent) understand how you actually work. It
    discovers your workflow patterns through either active interrogation or passive
    observation, then generates a **skills bundle** — a set of loadable skills, each
    with trigger conditions, that encode your workflow so your agent can meet you
    where you are in every session.
    
    ## What You Get
    
    After running workflow-architect, you'll have a new bundle in your agent's skill
    directory containing:
    
    - **Umbrella SKILL.md** — the entry point that makes the bundle auto-detectable
      via trigger conditions in its description. Load it with `skill_view(name='<bundle-name>')`
      or let the agent discover it automatically when you say something matching its triggers.
    - **Sub-skills** — one per phase of your workflow, each with a `description`
      that tells the agent when to load it (e.g., "load this when the user starts
      their morning triage routine" or "use this when the user shifts into deep work
      mode")
    - **A manifest** — maps skill names to their trigger conditions, entry points,
      and transition signals
    - **A decision map** — Mermaid flowchart visualizing your workflow as the agent
      sees it
    - **A kanban board** (optional) — only included if your workflow follows a
      predictable linear path where WIP limits and lane transitions add value
    
    The umbrella and sub-skills are registered via `skill_manage(action='create')`
    so they appear in `skills_list()` and are immediately loadable in future sessions.
    
    ## Two Modes
    
    Workflow-architect adapts to how you want to engage with it.
    
    ### Mode 1: Active Interrogation (One-Shot)
    
    **When to use:** You have a few minutes to talk through your process. This is
    the most thorough mode — the agent asks guided questions, branches based on your
    answers, and builds a model of your workflow turn by turn.
    
    **How to invoke:**
    ```
    /workflow-architect
    ```
    
    The agent will guide you through a conversation of about 8-15 questions.
    Answer naturally — the skill adapts its probes based on what you say.
    
    ### Mode 2: Passive Observation
    
    **When to use:** You're already in a session doing real work and don't want to
    stop and reflect. Let this mode watch what you actually do, then infer the
    workflow pattern from your actions.
    
    **How to invoke:**
    ```
    /workflow-architect passive
    ```
    
    The agent loads the observer skill silently. It does nothing until you say one
    of the trigger phrases below, at which point it scans the current session's
    message history and reconstructs your workflow from what happened.
    
    **Trigger phrases (say any of these to activate observation analysis):**
    - "catalog my workflow"
    - "what's my workflow"
    - "analyze my process"
    - "figure out what I do"
    - "work it out from what I just did"
    
    > **Limitation:** Observation mode works best after a session with at least
    > 20+ turns of substantive work. If the session context is too thin, the
    > observer will suggest switching to active interrogation mode instead.
    
    ## Loading Protocol
    
    1. Read this umbrella SKILL.md for context
    2. If active: load `skills/interviewer/SKILL.md`
    3. If passive: load `skills/observer/SKILL.md`
    4. After convergence: load `skills/bundle-builder/SKILL.md` to synthesize
       and write the output bundle. The bundle is written to
       `~/.hermes/skills/<category>/<bundle-name>/` — verify the umbrella loads
       with `skill_view(name='<bundle-name>')` and at least one sub-skill loads
       with `skill_view(name='<bundle-name>-<phase-name>')`. Tell the user where
       it landed, what skills it contains, and a trigger phrase they can use to
       enter the workflow.
    
    ## What the Interview Builds
    
    The interviewer (and observer, through inference) builds a structured model
    with these dimensions:
    
    | Dimension | What it captures |
    |-----------|------------------|
    | **Entry points** | How your sessions typically start |
    | **Phases** | The distinct modes or stages in your workflow |
    | **Branching signals** | What makes you go left vs right at each fork |
    | **Tool preferences** | What you reach for in each phase |
    | **Loop conditions** | What keeps you in a mode vs what kicks you out |
    | **Exit criteria** | How you know a session is done |
    | **Pain points** | What feels frictionful or inefficient |
    
    ## Environment
    
    No environment variables required. State is stored via memory tool
    with the prefix `workflow-architect:state:` so it persists across turns
    during multi-turn interviews.
    
    ## When not to use
    
    Do not use this skill for one-off task help or when there is no repeatable multi-phase workflow worth capturing — a standalone skill is a better fit. If you already have a well-defined process and only need it packaged, generate the bundle directly rather than re-running an interview.
    
    ## Prerequisites
    
    This skill ships no scripts; it is a resource-based protocol carried by the files bundled with this SKILL.md:
    
    - **Sub-skill protocols** — `skills/interviewer/SKILL.md` (active interrogation), `skills/observer/SKILL.md` (passive observation), and `skills/bundle-builder/SKILL.md` (bundle synthesis and registration). Load them per the Loading Protocol above.
    - **Reference patterns** — `references/workflow-archetypes.md` (convergence-detection pattern library), `references/trigger-condition-patterns.md` (trigger-condition format spec), `references/kanban-decision-criteria.md` (when to include a kanban board), and `references/example-output/` (worked example bundles: `developer-triage`, `developer-pipeline-kanban`).
    - **Generation templates** — `templates/skill-skeleton.md`, `templates/manifest.yaml.tmpl`, `templates/decision-map.md.tmpl`, `templates/kanban-board-setup.sh.tmpl`, and `templates/kanban-task-blueprints.yaml.tmpl` for the generated bundle's files.
    - **Agent capabilities** — the host agent needs skill management tools (`skill_view`, `skill_manage`, `skills_list`), a memory tool for `workflow-architect:state:` keys, session context access for observation mode, and file writing for bundle output.
    - **A writable skills directory** — generated bundles land in `~/.hermes/skills/<category>/<bundle-name>/`; that location must be creatable and registrable.
    
    ## Limitations
    
    - The output targets the Hermes-style skill runtime named in `compatibility`: bundles are standard Agent Skills, but registration via `skill_manage(action='create')` and the `~/.hermes/skills` path assume that environment. On other runtimes, copy the bundle manually into the client's skill directory.
    - Passive observation reconstructs only what happened in the current session; with fewer than roughly 20 substantive turns it will under-infer and should fall back to active interrogation.
    - The generated workflow is only as good as what you say or do during discovery — phases, branching signals, and exit criteria are inferred from evidence, not invented, so thin input yields generic bundles.
    - Bundle generation writes new skill files and registers them; confirm scope before overwriting an existing bundle of the same name.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related