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
#workflow
Install
npx skills add https://github.com/magnus919/agent-skills/tree/main/workflow-architect
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install magnus919-agent-skills@llmmart
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
descriptionthat 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
- Read this umbrella SKILL.md for context
- If active: load
skills/interviewer/SKILL.md - If passive: load
skills/observer/SKILL.md - After convergence: load
skills/bundle-builder/SKILL.mdto synthesize and write the output bundle. The bundle is written to~/.hermes/skills/<category>/<bundle-name>/— verify the umbrella loads withskill_view(name='<bundle-name>')and at least one sub-skill loads withskill_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), andskills/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), andreferences/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, andtemplates/kanban-task-blueprints.yaml.tmplfor the generated bundle's files. - Agent capabilities — the host agent needs skill management tools (
skill_view,skill_manage,skills_list), a memory tool forworkflow-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 viaskill_manage(action='create')and the~/.hermes/skillspath 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.
Reviews (0)
No reviews yet.
No comments yet.