Orchestrate a whole workflow for a project (design thinking, Double Diamond, RACE, Scrum, a product launch) phase by phase, asking before each phase writes and pausing for approval at every boundary. Use when the user asks to start, run, continue or resume a process, methodology or workflow for a project. Not for a single skill; invoke that skill by name.
Installs into .claude/skills of the current project.
Are you the author of Workflow?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/bromso-workflow-singularskills)
---
name: workflow
description: Orchestrate a whole workflow for a project (design thinking, Double Diamond, RACE, Scrum, a product launch) phase by phase, asking before each phase writes and pausing for approval at every boundary. Use when the user asks to start, run, continue or resume a process, methodology or workflow for a project. Not for a single skill; invoke that skill by name.
metadata:
argument-hint: "<workflow> <project>"
---
# Workflow
Conduct the workflow named by the first token of "$ARGUMENTS" for the project named by the second token, one phase at a time. You are the conductor: you read the state, run the phase's member skills, stop at the phase boundary and record the person's approval, following the rules below.
## Rules
- A phase is complete only when the run log holds a `phase-approved` line for its `{workflow, project, phase}`. An artifact on disk without that line is **written**, not complete.
- The conductor never writes an artifact itself; the phase's member skills do. Your own writes are the three run-log lines below.
- The conductor never skips a gate. If a member's gate refuses, stop and tell the user what it printed; only the user can ask that member to bypass it.
- **Stop** at every phase boundary. Nothing proceeds without an answer.
## Prerequisites
None. A missing project name or an unknown workflow is handled in step 1.
## Files
- **The workflow file.** Read `workflows/<workflow>.yml` from the `workflows/` folder next to the `skills/` folder of this pack; if it is not there, the `workflows/<name>.yml` file bundled in this skill's `references/` (listed below). It has `name`, `title`, `folder` and a list of `phases`; each phase has `phase` (its number), `title`, `artifact` (a file such as `01-empathize.md`, a folder such as `01-assess/`, or absent), `requires`, `skills` (its member skills, in order) and, in cross-domain workflows, its own `folder`.
- **The artifact folder** of a phase is `.singularskills/<folder>/<project>/`, where `<folder>` is the phase's own `folder` if it has one, else the workflow's `folder`.
- **The run log** is `.singularskills/log.jsonl`, one JSON object per line, append-only. `references/run-log.md` describes every event and the artifact format.
<!-- workflows:start -->
The workflows, from `workflows/*.yml` (regenerated by `pack-tools fix-skill-text`); each heading names the bundled copy of its file:
### accessibility — WCAG-EM (folder `accessibility`, file `references/workflows/accessibility.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Scope | `01-scope.md` | | | `accessibility-scope` |
| 2 | Evaluate | `02-evaluate.md` | | `01-scope.md` | `accessibility-evaluate` |
| 3 | Report | `03-report.md` | | `02-evaluate.md` | `accessibility-report` |
| 4 | Remediate | `04-remediate.md` | | `03-report.md` | `accessibility-remediate` |
| 5 | Retest | `05-retest.md` | | `04-remediate.md` | `accessibility-retest` |
### accounting — Accounting Cycle (folder `accounting`, file `references/workflows/accounting.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Analyze | `01-analyze.md` | | | `accounting-analyze` |
| 2 | Journal | `02-journal.md` | | `01-analyze.md` | `accounting-journal` |
| 3 | Ledger | `03-ledger.md` | | `02-journal.md` | `accounting-ledger` |
| 4 | Trial Balance | `04-trial-balance.md` | | `03-ledger.md` | `accounting-trial-balance` |
| 5 | Adjust | `05-adjust.md` | | `04-trial-balance.md` | `accounting-adjust` |
| 6 | Adjusted Balance | `06-adjusted-balance.md` | | `04-trial-balance.md`, `05-adjust.md` | `accounting-adjusted-balance` |
| 7 | Statements | `07-statements.md` | | `06-adjusted-balance.md` | `accounting-statements` |
| 8 | Close | `08-close.md` | | `06-adjusted-balance.md`, `07-statements.md` | `accounting-close` |
### ai — AI Feature Lifecycle (folder `ai`, file `references/workflows/ai.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Define | `01-define.md` | | | `ai-define` |
| 2 | Approach | `02-approach.md` | | `01-define.md` | `ai-approach` |
| 3 | Prompt and context | `03-prompt.md` | | `01-define.md`, `02-approach.md` | `ai-prompt-design` |
| 4 | Experience | `04-experience.md` | | `01-define.md`, `02-approach.md` | `ai-experience` |
| 5 | Build | `05-build.md` | | `03-prompt.md`, `04-experience.md` | `ai-build` |
| 6 | Evaluate | `06-evaluate.md` | | `01-define.md`, `05-build.md` | `ai-evaluate` |
| 7 | Ship | `07-ship.md` | | `06-evaluate.md` | `ai-ship` |
| 8 | Monitor | `08-monitor.md` | | `07-ship.md` | `ai-monitor` |
### analytics — Decision Analytics Cycle (folder `analytics`, file `references/workflows/analytics.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Questions | `01-questions.md` | | | `analytics-questions` |
| 2 | Metrics | `02-metrics.md` | | `01-questions.md` | `analytics-metrics` |
| 3 | Data | `03-data.md` | | `02-metrics.md` | `analytics-data-audit` |
| 4 | Analysis | `04-analysis.md` | | `01-questions.md`, `03-data.md` | `analytics-analysis` |
| 5 | Dashboards | `05-dashboards.md` | | `02-metrics.md`, `03-data.md` | `analytics-dashboards` |
| 6 | Readout | `06-readout.md` | | `04-analysis.md` | `analytics-readout` |
### bookkeeping — Bookkeeping Cycle (folder `bookkeeping`, file `references/workflows/bookkeeping.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Record | `01-record.md` | | | `bookkeeping-record` |
| 2 | Categorize | `02-categorize.md` | | `01-record.md` | `bookkeeping-categorize` |
| 3 | Reconcile | `03-reconcile.md` | | `02-categorize.md` | `bookkeeping-reconcile` |
| 4 | Report | `04-report.md` | | `03-reconcile.md` | `bookkeeping-report` |
### branding — Brand Identity Process (folder `branding`, file `references/workflows/branding.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Discover | `01-discover.md` | | | `branding-discover` |
| 2 | Strategy | `02-strategy.md` | | `01-discover.md` | `branding-strategy` |
| 3 | Verbal | `03-verbal.md` | | `01-discover.md`, `02-strategy.md` | `branding-verbal` |
| 4 | Visual | `04-visual.md` | | `02-strategy.md`, `03-verbal.md` | `branding-visual` |
| 5 | Guidelines | `05-guidelines.md` | | `04-visual.md` | `branding-guidelines` |
### build-feature — Build a Feature (folder `build-feature`, file `references/workflows/build-feature.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Understand the problem space | `01-discover.md` | research | | `research-discover` |
| 2 | Define the problem clearly | `02-define.md` | research | | `research-define` |
| 3 | Break into implementation tasks | `01-plan.md` | development | | `development-plan` |
| 4 | Execute with TDD discipline | `02-build.md` | development | | `development-build` |
| 5 | Validate test coverage | `03-test.md` | development | | `development-test` |
| 6 | Quick accessibility check | | accessibility | | `accessibility-checklist` |
| 7 | Get engineering feedback | `code-review.md` | coaching | | `coaching-code` |
| 8 | Pre-merge code review | `04-review.md` | development | | `development-review` |
| 9 | Merge, PR, or cleanup | | development | | `development-ship` |
### compliance — GRC Lifecycle (folder `compliance`, file `references/workflows/compliance.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 0 | Scope | `00-scope.md` | | | `compliance-compliance-priorities`, `compliance-compliance-roadmap`, `compliance-control-framework`, `compliance-regulatory-landscape` |
| 1 | Assess | `01-assess/` | | `00-scope.md` | `compliance-ada-wcag`, `compliance-bank-partnership`, `compliance-breach-notification`, `compliance-ccpa`, `compliance-csa-star`, `compliance-dora`, `compliance-eaa-en301549`, `compliance-eu-ai-act`, `compliance-fedramp`, `compliance-financial-compliance`, `compliance-gdpr`, `compliance-hipaa`, `compliance-hitrust`, `compliance-intl-privacy`, `compliance-iso22301`, `compliance-iso27001`, `compliance-iso27017`, `compliance-iso27018`, `compliance-iso27701`, `compliance-iso42001`, `compliance-kyc-aml`, `compliance-lgpd`, `compliance-nis2`, `compliance-nist-ai-rmf`, `compliance-payment-network`, `compliance-pci-dss`, `compliance-soc2`, `compliance-uk-gdpr`, `compliance-us-state-privacy`, `compliance-vendor-tprm` |
| 2 | Remediate | `02-remediate.md` | | `00-scope.md` | `compliance-control-mapping`, `compliance-evidence-plan`, `compliance-gap-analysis`, `compliance-implementation-plan`, `compliance-policy-gaps` |
| 3 | Certify | `03-certify.md` | | `00-scope.md` | `compliance-audit-readiness`, `compliance-auditor-selection`, `compliance-certification-tracker`, `compliance-evidence-package` |
| 4 | Monitor | `04-monitor.md` | | `00-scope.md` | `compliance-compliance-reporting`, `compliance-continuous-monitoring`, `compliance-regulatory-watch`, `compliance-renewal-calendar` |
### compliance-audit — Compliance Audit (folder `compliance-audit`, file `references/workflows/compliance-audit.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Assess current legal posture | `00-assess.md` | legal | | `legal-legal-audit` |
| 2 | Check GDPR compliance | `03-comply.md` | legal | | `legal-gdpr-compliance` |
| 3 | Review privacy policy | `01-draft.md` | legal | | `legal-privacy-policy` |
| 4 | Review terms of service | `01-draft.md` | legal | | `legal-terms-of-service` |
| 5 | Review cookie policy | `01-draft.md` | legal | | `legal-cookie-policy` |
| 6 | Define accessibility audit scope | `01-scope.md` | accessibility | | `accessibility-scope` |
| 7 | Run WCAG checks | `02-evaluate.md` | accessibility | | `accessibility-evaluate` |
| 8 | Generate accessibility report | `03-report.md` | accessibility | | `accessibility-report` |
| 9 | Fix accessibility issues | `04-remediate.md` | accessibility | | `accessibility-remediate` |
| 10 | Verify conformance | `05-retest.md` | accessibility | | `accessibility-retest` |
| 11 | Check brand compliance | `audit-reports/` | branding | | `branding-audit` |
| 12 | Get accessibility coaching | `a11y-review.md` | coaching | | `coaching-a11y` |
| 13 | Cross-domain compliance summary | | singular | | `singular-report` |
### design — Design Thinking (folder `design`, file `references/workflows/design.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Empathize | `01-empathize.md` | | | `design-empathize` |
| 2 | Define | `02-define.md` | | `01-empathize.md` | `design-define-component` |
| 3 | Ideate | `03-ideate.md` | | `02-define.md` | `design-ideate` |
| 4 | Prototype | `04-prototype.md` | | `02-define.md`, `03-ideate.md` | `design-prototype` |
| 5 | Test | `05-test.md` | | `04-prototype.md` | `design-test` |
### development — Plan-Build-Test-Ship (folder `development`, file `references/workflows/development.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Plan | `01-plan.md` | | | `development-plan` |
| 2 | Build | `02-build.md` | | `01-plan.md` | `development-build` |
| 3 | Test | `03-test.md` | | | `development-test` |
| 4 | Review | `04-review.md` | | | `development-review` |
### finance — FP&A (folder `finance`, file `references/workflows/finance.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Assess | `01-assess.md` | | | `finance-assess` |
| 2 | Plan | `02-plan.md` | | `01-assess.md` | `finance-plan` |
| 3 | Forecast | `03-forecast.md` | | `02-plan.md` | `finance-forecast` |
| 4 | Budget | `04-budget.md` | | `03-forecast.md` | `finance-budget` |
| 5 | Model | `05-model.md` | | `04-budget.md` | `finance-model` |
| 6 | Review | `06-review.md` | | `05-model.md` | `finance-review` |
### launch-product — Launch a Product (folder `launch-product`, file `references/workflows/launch-product.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Explore the problem space and market opportunity | `01-discover.md` | research | | `research-discover` |
| 2 | Synthesize into a clear problem statement | `02-define.md` | research | | `research-define` |
| 3 | Generate and evaluate solution concepts | `03-design.md` | research | | `research-design` |
| 4 | Validate the top solution with evidence | `04-deliver.md` | research | | `research-deliver` |
| 5 | Research brand landscape and audience | `01-discover.md` | branding | | `branding-discover` |
| 6 | Define positioning, values, personality | `02-strategy.md` | branding | | `branding-strategy` |
| 7 | Develop voice, tone, and messaging | `03-verbal.md` | branding | | `branding-verbal` |
| 8 | Define colors, typography, logo usage | `04-visual.md` | branding | | `branding-visual` |
| 9 | Package into brand manual | `05-guidelines.md` | branding | | `branding-guidelines` |
| 10 | Research user needs for key UI | `01-empathize.md` | design | | `design-empathize` |
| 11 | Create component contract | `02-define.md` | design | | `design-define-component` |
| 12 | Explore design approaches | `03-ideate.md` | design | | `design-ideate` |
| 13 | Break the build into tasks | `01-plan.md` | development | | `development-plan` |
| 14 | Execute with TDD discipline | `02-build.md` | development | | `development-build` |
| 15 | Validate test coverage | `03-test.md` | development | | `development-test` |
| 16 | Define accessibility audit scope | `01-scope.md` | accessibility | | `accessibility-scope` |
| 17 | Run automated and manual checks | `02-evaluate.md` | accessibility | | `accessibility-evaluate` |
| 18 | Report accessibility findings | `03-report.md` | accessibility | | `accessibility-report` |
| 19 | Fix accessibility issues | `04-remediate.md` | accessibility | | `accessibility-remediate` |
| 20 | Verify fixes and conformance | `05-retest.md` | accessibility | | `accessibility-retest` |
| 21 | Set the marketing strategy | `00-strategy.md` | marketing | | `marketing-customer-research`, `marketing-competitor-profiling`, `marketing-product-marketing-context`, `marketing-competitor-alternatives`, `marketing-pricing-strategy` |
| 22 | Plan the go-to-market | `01-reach.md` | marketing | | `marketing-launch-strategy` |
| 23 | Check brand compliance | `audit-reports/` | branding | | `branding-audit` |
| 24 | Get strategic feedback | `strategy-review.md` | coaching | | `coaching-strategy` |
| 25 | Cross-domain summary | | singular | | `singular-report` |
### leadership — Leadership Development (folder `leadership`, file `references/workflows/leadership.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Assess | `01-assess.md` | | | `leadership-assess` |
| 2 | Vision | `02-vision.md` | | `01-assess.md` | `leadership-vision` |
| 3 | Build | `03-build.md` | | `01-assess.md`, `02-vision.md` | `leadership-build` |
| 4 | Develop | `04-develop.md` | | `03-build.md` | `leadership-develop` |
| 5 | Sustain | `05-sustain.md` | | `04-develop.md` | `leadership-sustain` |
### legal — Legal Lifecycle (folder `legal`, file `references/workflows/legal.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 0 | Assess | `00-assess.md` | | | `legal-jurisdiction-analysis`, `legal-legal-audit`, `legal-regulatory-map`, `legal-risk-assessment`, `legal-stakeholder-needs` |
| 1 | Draft | `01-draft.md` | | `00-assess.md` | `legal-cookie-policy`, `legal-employment-agreement`, `legal-nda`, `legal-open-source-policy`, `legal-privacy-policy`, `legal-saas-agreement`, `legal-terms-of-service`, `legal-vendor-agreement` |
| 2 | Review | `02-review.md` | | `00-assess.md` | `legal-clause-analysis`, `legal-compliance-review`, `legal-contract-review`, `legal-ip-review`, `legal-negotiation-prep`, `legal-red-flag-detection` |
| 3 | Comply | `03-comply.md` | | `00-assess.md` | `legal-accessibility-compliance`, `legal-ccpa-compliance`, `legal-cookie-consent`, `legal-data-processing-agreement`, `legal-gdpr-compliance`, `legal-incident-response-plan`, `legal-soc2-prep` |
| 4 | Govern | `04-govern.md` | | `00-assess.md` | `legal-compliance-monitor`, `legal-contract-tracker`, `legal-legal-playbook`, `legal-regulatory-updates`, `legal-training-plan` |
### marketing — RACE Framework (folder `marketing`, file `references/workflows/marketing.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 0 | Strategy | `00-strategy.md` | | | `marketing-customer-research`, `marketing-competitor-profiling`, `marketing-product-marketing-context`, `marketing-competitor-alternatives`, `marketing-pricing-strategy` |
| 1 | Reach | `01-reach.md` | | `00-strategy.md` | `marketing-ai-seo`, `marketing-community-marketing`, `marketing-content-strategy`, `marketing-directory-submissions`, `marketing-launch-strategy`, `marketing-programmatic-seo`, `marketing-seo-audit`, `marketing-site-architecture`, `marketing-social-content` |
| 2 | Act | `02-act.md` | | `00-strategy.md` | `marketing-copywriting`, `marketing-form-cro`, `marketing-free-tool-strategy`, `marketing-lead-magnets`, `marketing-marketing-psychology`, `marketing-page-cro`, `marketing-schema-markup` |
| 3 | Convert | `03-convert.md` | | `00-strategy.md` | `marketing-ab-test-setup`, `marketing-ad-creative`, `marketing-cold-email`, `marketing-email-sequence`, `marketing-paid-ads`, `marketing-sales-enablement`, `marketing-signup-flow-cro` |
| 4 | Engage | `04-engage.md` | | `00-strategy.md` | `marketing-churn-prevention`, `marketing-onboarding-cro`, `marketing-paywall-upgrade-cro`, `marketing-popup-cro`, `marketing-referral-program` |
### new-team — Set Up a New Team (folder `new-team`, file `references/workflows/new-team.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Assess leadership style and team landscape | `01-assess.md` | leadership | | `leadership-assess` |
| 2 | Define team purpose, values, and culture | `02-vision.md` | leadership | | `leadership-vision` |
| 3 | Structure roles, responsibilities, delegation | `03-build.md` | leadership | | `leadership-build` |
| 4 | Create growth plans and set OKRs | `04-develop.md` | leadership | | `leadership-develop` |
| 5 | Establish rituals (1:1s, retros, reviews) | `05-sustain.md` | leadership | | `leadership-sustain` |
| 6 | Define first project | `00-initiate.md` | project-management | | `project-management-project-charter` |
| 7 | Set up Scrum ceremonies | `00-initiate.md` | project-management | | `project-management-team-setup` |
| 8 | Plan first sprint | `01-plan.md` | project-management | | `project-management-sprint-planning` |
| 9 | Plan the team's first deliverable | `01-plan.md` | development | | `development-plan` |
| 10 | Prepare first 1:1s | `one-on-one.md` | leadership | | `leadership-one-on-one` |
### ops — Reliability Cycle (folder `ops`, file `references/workflows/ops.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Inventory | `01-inventory.md` | | | `ops-service-inventory` |
| 2 | SLOs | `02-slos.md` | | `01-inventory.md` | `ops-slos` |
| 3 | Alerting | `03-alerting.md` | | `02-slos.md` | `ops-alerting` |
| 4 | Runbooks | `04-runbooks.md` | | `03-alerting.md` | `ops-runbooks` |
| 5 | On-call | `05-on-call.md` | | `03-alerting.md`, `04-runbooks.md` | `ops-on-call` |
| 6 | Review | `06-review.md` | | `02-slos.md` | `ops-reliability-review` |
### project-management — Scrum (folder `project-management`, file `references/workflows/project-management.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 0 | Initiate | `00-initiate.md` | | | `project-management-definition-of-done`, `project-management-project-charter`, `project-management-stakeholder-map`, `project-management-team-setup`, `project-management-ways-of-working` |
| 1 | Plan | `01-plan.md` | | `00-initiate.md` | `project-management-backlog-creation`, `project-management-estimation`, `project-management-product-vision`, `project-management-roadmap`, `project-management-sprint-planning`, `project-management-story-mapping`, `project-management-user-stories` |
| 2 | Sprint | `02-sprint.md` | | `00-initiate.md` | `project-management-blocker-resolution`, `project-management-dependency-map`, `project-management-sprint-goal`, `project-management-standup`, `project-management-wip-review` |
| 3 | Review | `03-review.md` | | `00-initiate.md` | `project-management-demo-prep`, `project-management-release-notes`, `project-management-sprint-metrics`, `project-management-sprint-review`, `project-management-stakeholder-update` |
| 4 | Improve | `04-improve.md` | | `00-initiate.md` | `project-management-post-mortem`, `project-management-process-improvement`, `project-management-retrospective`, `project-management-team-health`, `project-management-velocity-analysis` |
### rebrand — Rebrand (folder `rebrand`, file `references/workflows/rebrand.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Research why the rebrand is needed | `01-discover.md` | research | | `research-discover` |
| 2 | Define the rebrand objectives | `02-define.md` | research | | `research-define` |
| 3 | Audit current brand and competitors | `01-discover.md` | branding | | `branding-discover` |
| 4 | Define new positioning and values | `02-strategy.md` | branding | | `branding-strategy` |
| 5 | Develop new voice and messaging | `03-verbal.md` | branding | | `branding-verbal` |
| 6 | Create new visual identity | `04-visual.md` | branding | | `branding-visual` |
| 7 | Package into brand manual | `05-guidelines.md` | branding | | `branding-guidelines` |
| 8 | Review content against new brand | `copy-review.md` | coaching | | `coaching-copy` |
| 9 | Score existing materials | `audit-reports/` | branding | | `branding-audit` |
| 10 | Set the marketing strategy | `00-strategy.md` | marketing | | `marketing-customer-research`, `marketing-competitor-profiling`, `marketing-product-marketing-context`, `marketing-competitor-alternatives`, `marketing-pricing-strategy` |
| 11 | Plan the rebrand rollout | `01-reach.md` | marketing | | `marketing-launch-strategy` |
| 12 | Cross-domain summary | | singular | | `singular-report` |
### research — Double Diamond (folder `research`, file `references/workflows/research.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Discover | `01-discover.md` | | | `research-discover` |
| 2 | Define | `02-define.md` | | `01-discover.md` | `research-define` |
| 3 | Design | `03-design.md` | | `01-discover.md`, `02-define.md` | `research-design` |
| 4 | Deliver | `04-deliver.md` | | `01-discover.md`, `02-define.md`, `03-design.md` | `research-deliver` |
### sales — Deal Cycle (folder `sales`, file `references/workflows/sales.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Qualify | `01-qualify.md` | | | `sales-qualify` |
| 2 | Discovery | `02-discovery.md` | | `01-qualify.md` | `sales-discovery` |
| 3 | Solution | `03-solution.md` | | `02-discovery.md` | `sales-solution` |
| 4 | Proposal | `04-proposal.md` | | `02-discovery.md`, `03-solution.md` | `sales-proposal` |
| 5 | Close plan | `05-close.md` | | `04-proposal.md` | `sales-close-plan` |
| 6 | Review | `06-review.md` | | | `sales-deal-review` |
### security — NIST CSF (folder `security`, file `references/workflows/security.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 0 | Govern | `00-govern.md` | | | `security-risk-appetite`, `security-security-culture`, `security-security-policy`, `security-security-roles`, `security-supply-chain-security` |
| 1 | Identify | `01-identify.md` | | `00-govern.md` | `security-asset-inventory`, `security-attack-surface`, `security-compliance-gap`, `security-data-classification`, `security-risk-assessment`, `security-threat-model`, `security-vulnerability-assessment` |
| 2 | Protect | `02-protect.md` | | `00-govern.md` | `security-access-control`, `security-api-security`, `security-container-security`, `security-dependency-scan`, `security-encryption-strategy`, `security-iac-security`, `security-secrets-management`, `security-secure-coding` |
| 3 | Detect | `03-detect.md` | | `00-govern.md` | `security-anomaly-detection`, `security-logging-architecture`, `security-monitoring-strategy`, `security-security-testing`, `security-siem-setup` |
| 4 | Respond | `04-respond.md` | | `00-govern.md` | `security-containment-strategy`, `security-forensic-readiness`, `security-incident-communication`, `security-incident-response`, `security-lessons-learned` |
| 5 | Recover | `05-recover.md` | | `00-govern.md` | `security-backup-validation`, `security-business-continuity`, `security-recovery-plan`, `security-resilience-improvement` |
### support — Support Operations Cycle (folder `support`, file `references/workflows/support.yml`)
| Phase | Title | Artifact | Folder | Requires | Skills |
| --- | --- | --- | --- | --- | --- |
| 1 | Map | `01-map.md` | | | `support-journey-map` |
| 2 | Taxonomy | `02-taxonomy.md` | | `01-map.md` | `support-taxonomy` |
| 3 | Knowledge | `03-knowledge.md` | | `02-taxonomy.md` | `support-knowledge-base` |
| 4 | Responses | `04-macros.md` | | `02-taxonomy.md`, `03-knowledge.md` | `support-macros` |
| 5 | Escalation | `05-escalation.md` | | `02-taxonomy.md` | `support-escalation` |
| 6 | Service levels | `06-service-levels.md` | | `02-taxonomy.md`, `05-escalation.md` | `support-service-levels` |
| 7 | Health | `07-health.md` | | `02-taxonomy.md`, `06-service-levels.md` | `support-health-review` |
<!-- workflows:end -->
## Run-log lines you write
Append exactly one line per event to `.singularskills/log.jsonl` (create the folder and file if missing), with `"skill":"workflow"`:
- When you start running phases: `{"ts":"<ISO timestamp>","skill":"workflow","workflow":"<workflow>","phase":null,"project":"<project>","event":"run-started","artifact":null,"note":"from phase <first unapproved phase>"}`
- When the user approves a phase: `{"ts":"<ISO timestamp>","skill":"workflow","workflow":"<workflow>","phase":<phase>,"project":"<project>","event":"phase-approved","artifact":"<the phase's artifact, or null when it has none>","note":"<the user's words, briefly>"}`
- When the run ends: `{"ts":"<ISO timestamp>","skill":"workflow","workflow":"<workflow>","phase":null,"project":"<project>","event":"run-finished","artifact":null,"note":"<\"complete\", \"stopped before approving phase <phase>\" or \"refused at phase <phase>: <what the gate printed>\">"}`
`<phase>` is the phase's number from the workflow file, written as a JSON number. Never edit or delete earlier lines.
## Process
1. **Read the state.**
- **Arguments.** Take the workflow from the first token of `$ARGUMENTS` and the project from the second. If `$ARGUMENTS` is empty, or is not two tokens of the `<workflow> <project>` form (for example when you were invoked from the user's own words, or by a member skill's handoff passing those words along), take the workflow and project from the user's request instead: match a workflow by its name or its title in the table above ("design thinking" is `design`), and the project by the thing being worked on ("for date-picker" is `date-picker`). Ask only if they cannot be found.
- No workflow found: list the workflows in the block under **Files** and ask which one. A workflow named in that block is valid. Read its file when you can, since the file is the source; if you cannot read it, say so in one line and use the block, which holds every phase's number, title, artifact, folder, requires and skills. Stop only for a name that is in neither the block nor the user's words: say so, list the workflows and stop.
- No project found: ask for one (lowercase, hyphenated, e.g. `date-picker`) and wait.
- Read the workflow file, then each phase's artifact folder, then `.singularskills/log.jsonl` if it exists. From the log keep the lines whose `project` matches and whose `workflow` is this workflow's name: `phase-approved` lines mark approved phases. Member skills write their own lines with `workflow` set to their artifact folder, so also keep the `refused` and `skipped` lines whose `project` matches and whose `workflow` is either this workflow's name or the folder of any of its phases (in a cross-domain run, every member's folder); these are gate events to report.
- The **first unapproved phase** is the first phase, in file order, with no `phase-approved` line. A phase with no `artifact` (approval-only, such as a cross-domain report phase) produces nothing a later phase requires and is complete on approval alone.
- **Written is decided per member, not by the file existing.** A cross-domain workflow can point at a file another run already wrote, so check each member of this phase (the member's `SKILL.md` says whether it writes the whole file or its own section of a shared one):
- a single-writer artifact counts as written by the member when it exists and its frontmatter `skill` is that member;
- a shared artifact counts as written by a member when it has that member's own `## <Skill title>` section (the title is the `#` heading of the member's `SKILL.md`, and the section opens with the member's italic line);
- a folder artifact (such as `01-assess/`) counts as written by a member when the folder holds a file whose frontmatter `skill` is that member.
- **Written before the run log.** An artifact that exists but has **no frontmatter** at all (a folder artifact: holds files, none with frontmatter), or, for a shared artifact, a member's `## <Skill title>` section without the italic opener, was written before the run log existed. It counts as written by that member (by every member, for a whole file with no frontmatter): never re-run the member for it.
The phase is **written** when every member of this phase has written; it is **written-unlogged** when every member has written and at least one of them only before the run log; it is **partly written** when some have; otherwise it is not started.
2. **Report where the run stands**, briefly:
- Each approved phase, with its artifact's **Decisions** section quoted in one or two lines (for a shared artifact, each member section's **Decisions**).
- The first unapproved phase, its title and member skills, and which members have written (step 1); say so when the phase is written-unlogged.
- Every `refused` or `skipped` line kept in step 1 (its `project` matches and its `workflow` is this workflow's name or any member's folder), with its skill, artifact and note.
- What the trail already holds for this project: the artifact folders under `.singularskills/*/<project>/` and how many log lines name it, so the person sees the history before phase 1 runs.
- If every phase is approved, go to step 5.
3. **Run the first unapproved phase.** Unless this conversation has an open run for this workflow and project (a `run-started` you appended with no `run-finished` after it), append `run-started` now. Before you do, close any stale run the log still holds open for this project (a `run-started` for any workflow with no later `run-finished` for the same `workflow` and `project`, left by a session that ended at a boundary): append `run-finished` for it with the note `superseded by a new run`, so that member skills see one open run, yours.
- **Written** (every member has written, from an earlier run that stopped before approval): do not re-run it; go to step 4 and ask whether to approve it as written or re-run named members.
- **Written-unlogged** (its artifact was written before the run log existed, for example by an older version of these skills): do not re-run that member; report the phase as written-unlogged and go to step 4 to offer it for approval as it stands, or re-run named members if the user asks.
- **Partly written** (resuming with some members' work present): do not assume the rest should run, since the user may have chosen a subset earlier. Name the members that have written and those that have not, and ask whether to run the remaining members or approve the phase as it stands. Then do what the user says.
- **Not started, several member skills:** run all of them in the listed order by default, one after the other. If the user named a subset ("only seo-audit and copywriting"), run only those, in listed order. Ask which apply only when the user seems unsure; then list the members with a one-line summary each.
- **Running a member:** follow that member's `SKILL.md` (the sibling folder `../<skill>/SKILL.md` of this skill, or invoke the skill by name) as if the user had invoked it with `<project>`. This holds for every member, one or several. The member's Prerequisites open with a handoff to this skill; it does not apply while you are running the member, because this run's `run-started` line is an open run for the project, whatever workflow it names.
- Each member runs its own Prerequisites, including the gate script its Prerequisites name. If a gate refuses, stop: tell the user what it printed and which earlier phase to run, and append `run-finished` with a note naming the refusal (`refused at phase <phase>: <what the gate printed>`). Do not bypass the gate yourself and do not write the missing artifact; the user decides. If the user then explicitly asks to bypass it, append a new `run-started` (the refusal finished the earlier run) and run that member again with `<project>` followed by its skip-checks flag (the bypass its Arguments paragraph names); the member logs the `skipped` event itself before writing.
- Each member asks what it cannot infer before it writes: one question at a time, in plain language, offering a menu only when the user is stuck. Then it writes its artifact (or its own `## <Skill title>` section of a shared artifact) and appends its own run-log lines as its text says.
4. **Stop.** When the phase's members are done:
- Play back the phase's **Decisions** and **Open questions** from what was written.
- Say what the next phase will do (its title and member skills), or that this was the last phase.
- Ask whether to approve this phase and continue. Nothing proceeds without an answer; end your turn here.
- On "approve", "continue", "go on", "yes" and the like: append the `phase-approved` line, then go back to step 3 with the next unapproved phase.
- On corrections ("redo copywriting with a warmer tone"): re-run only the named members with the correction, then stop again at this step.
- On anything else (stop, later, a new topic): append `run-finished` with the note `stopped before approving phase <phase>` and end the run. The artifacts stay on disk; no approval is recorded.
5. **Finish.** When the last phase is approved, summarise the whole run from the artifacts (each phase's key decisions and the open questions still standing) and stop. Append `run-finished` with the note `complete` only if this conversation appended `run-started`; a workflow that was already complete when you read it gets no new lines.
Resuming is the same command: step 1 finds the first unapproved phase, so `/workflow <workflow> <project>` picks up where the run stopped, even in a new conversation; a written phase is offered for approval again, and a partly written one asks before running the rest.
## Output
Nothing of your own beyond the run-log lines; the member skills write the artifacts under `.singularskills/<folder>/<project>/`. Present the state report (step 2), each phase's playback and approval question (step 4), and the closing summary (step 5).