conductor-feature-prepare — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited conductor-feature-prepare (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Context artifacts preparation orchestrator — generates all context artifacts (module models, HTML mockups, technical specifications, test specifications) needed before code implementation can begin.
This skill AUTOMATICALLY starts a Ralph Loop to ensure complete artifact generation across all steps. Without Ralph Loop, the preparation may stop prematurely due to context window limits, API usage limits, or the agent incorrectly concluding work is "done enough". Ralph Loop ensures the same prompt is re-fed after each session exit, and the agent picks up where it left off.
BEFORE doing anything else (before Phase 0, before reading any files), you MUST invoke the Ralph Loop skill using the Skill tool. This is a blocking requirement — do NOT proceed with any work until Ralph Loop is active.
Invoke this immediately:
Skill(skill: "ralph-loop:ralph-loop", args: "/conductor-feature-prepare <application> [version:<version>] [module:<module>] --completion-promise \"ALL ARTIFACTS GENERATED\" --max-iterations 20")Replace <application> and optional arguments with the actual arguments provided by the user.
Example: If the user invokes:
/conductor-feature-prepare mainappThen invoke:
Skill(skill: "ralph-loop:ralph-loop", args: "/conductor-feature-prepare mainapp --completion-promise \"ALL ARTIFACTS GENERATED\" --max-iterations 20")If the user provides optional arguments:
/conductor-feature-prepare mainapp version:v2 module:userThen invoke:
Skill(skill: "ralph-loop:ralph-loop", args: "/conductor-feature-prepare mainapp version:v2 module:user --completion-promise \"ALL ARTIFACTS GENERATED\" --max-iterations 20")After Ralph Loop is active, proceed with Phase 0 (Resume Check) and continue normally.
When ALL artifacts have been generated (or confirmed to already exist), output the following promise tag to signal the Ralph Loop that preparation is finished:
<promise>ALL ARTIFACTS GENERATED</promise>CRITICAL: Only output this promise when EVERY artifact step has completed:
Do NOT output the promise prematurely. Do NOT output it to escape the loop.
At the START of every iteration (including the first), the agent MUST:
.claude/ralph-loop.local.md exists, skip re-invoking)<app_folder>/context/prepare/PREPARE_MASTER.md (the progress source of truth) if itexists, to determine which steps and versions are already COMPLETED
<app_folder>/context/ subfolders that the artifacts the tracker marksCOMPLETED actually exist (reconcile the tracker if an artifact was deleted)
completion promise and stop
The skill expects these arguments:
/conductor-feature-prepare <application> [version:<version>] [module:<module>]| Argument | Required | Example | Description |
|---|---|---|---|
<application> | Yes | mainapp | Application name to locate the context folder |
version:<version> | No | version:v2 or version:v1,v2 or version:all | Filter user stories and artifacts by version. Supports single version, comma-separated list, all, or omit for all versions. Multiple versions are processed sequentially in ascending semver order |
module:<module> | No | module:user | If provided, process only this module. If omitted, process all modules |
The application name is matched against root-level application folders:
<number>_ prefix from folder names (e.g., 1_hub_middleware → hub_middleware)| File | Resolved Path |
|---|---|
| PRD.md | <app_folder>/context/PRD.md |
| Module Models | <app_folder>/context/model/ |
| HTML Mockups | <app_folder>/context/mockup/ |
| Specifications | <app_folder>/context/specification/ |
| Test Specs | <app_folder>/context/test/ |
| References | <app_folder>/context/reference/ |
| Preparation Tracking | <app_folder>/context/prepare/PREPARE_MASTER.md |
The version: argument supports four forms:
| Form | Example | Behavior |
|---|---|---|
| Single version | version:v2 | Process only v2 |
| Comma-separated list | version:v1,v2,v3 | Process each version sequentially in ascending semver order |
| Explicit all | version:all | Discover all versions from PRD.md, process sequentially in ascending semver order |
| Omitted | _(no version arg)_ | Same as version:all |
#### Version Discovery
When version:all or omitted:
[vX.Y.Z] version tags across all module sections#### Sequential Version Processing Rule
Versions are ALWAYS processed one at a time, in ascending semver order. All artifacts for version N must be fully generated (or confirmed to already exist) before version N+1 begins. This ensures:
CLAUDE.md is automatically loaded into context at the start of every session. It contains project details, infrastructure paths, credentials, and configuration. You do NOT need to read it manually — the information is already available in your context.
This guard prevents accidental re-execution of already-completed work while allowing incremental processing of new versions. It uses a partition and filter approach, driven by the PREPARE_MASTER.md tracker (the source of truth for what has been prepared).
<app_folder>/context/prepare/PREPARE_MASTER.md. If it does not exist, skip this check(nothing has been prepared yet — every resolved version is new).
Order** table:
completed_versions — versions whose row is marked COMPLETED in PREPARE_MASTER.mdnew_versions — versions with no row, or a row not yet COMPLETEDnew_versions | completed_versions | Artifacts exist? | Action |
|---|---|---|---|
| Not empty | Any (including empty) | Yes (expected — prior versions built them) | Proceed with `new_versions` only — filter out completed versions from the processing list. Existing artifacts are the base for version increment. |
| Not empty | Any | No | Proceed with all resolved versions — no prior artifacts, start from scratch. |
| Empty | Not empty | Yes | STOP. Print: "All requested versions ({list}) for {application} are already marked COMPLETED in <app_folder>/context/prepare/PREPARE_MASTER.md and their context artifacts still exist. To redo, first delete the existing context artifact folders (model/, mockup/, specification/, test/) and PREPARE_MASTER.md, then re-run this skill." |
| Empty | Not empty | No | Proceed with all resolved versions — artifacts were cleaned up, this is a legitimate redo. |
(either new_versions or all versions for redo). This filtered list is what the Sequential Version Loop in Phase 1 will iterate over.
This phase runs at the START of every iteration, including the first. In a Ralph Loop, each iteration begins fresh with the same prompt, so the agent MUST check existing artifacts to understand what has already been completed.
.claude/ralph-loop.local.md exists. If it does NOTexist, Ralph Loop is not yet active. Invoke it NOW using the Skill tool:
Skill(skill: "ralph-loop:ralph-loop", args: "<the full /conductor-feature-prepare invocation with args> --completion-promise \"ALL ARTIFACTS GENERATED\" --max-iterations 20")If .claude/ralph-loop.local.md already exists, Ralph Loop is active — skip this step.
design system, technology stack, and all infrastructure details.
[v2][v1, v2, v3]all or omitted → scan PRD.md for ALL [vX.Y.Z] tags, deduplicate, sort ascending<app_folder>/context/prepare/PREPARE_MASTER.md if it exists:artifact is missing, reset that entry to PENDING)
Then check which artifacts actually exist on disk:
<app_folder>/context/model/ for module model files<app_folder>/context/mockup/ for HTML mockup files<app_folder>/context/specification/ for spec files<app_folder>/context/test/ for test spec filesAND the artifacts still exist:
<promise>ALL ARTIFACTS GENERATED</promise> and stopwhich versions still need processing (see Phase 1 Sequential Version Loop)
This phase generates all required context artifacts before code implementation begins. Each step checks if the artifact already exists — if it does, the step is skipped. This ensures the phase is idempotent and can be resumed safely.
IMPORTANT: If module argument was provided, pass it through to each sub-skill invocation so that only the relevant subset of artifacts is generated.
#### Sequential Version Loop
Steps 1.1, 1.1.1 (tracker init) and 1.2 (tagging) are once-only setup — they run a single time before the loop. When multiple versions are resolved (list, all, or omitted), Phase 1 wraps the per-version Steps 1.3–1.9 in a version loop:
# Once, before the loop: Step 1.1 (resolve folder), Step 1.1.1 (create PREPARE_MASTER.md),
# Step 1.2 (tag user stories)
resolved_versions = [v1.0.0, v1.0.1, v1.0.2] # ascending semver order
For each version in resolved_versions:
1. Mark this version IN PROGRESS in PREPARE_MASTER.md's Version Processing Order table
2. Run Steps 1.3–1.9 with this single version as the version argument
3. For the FIRST version: artifacts are generated from scratch (Steps 1.4–1.9)
4. For SUBSEQUENT versions: artifacts already exist from the prior version — operate in
Version Increment Mode (update, not skip)
5. All artifacts for this version must be COMPLETED (mark the version COMPLETED in the tracker)
before moving to the next versionWhen only a single version is resolved, the loop runs once — no behavioral difference from the original single-version flow.
#### Version Increment Mode
When artifacts exist from a previous version but the current version in the loop has new/changed user stories, Steps 1.4–1.9 operate in update mode:
previous version and need to be updated with the current version's changes.
versionAND module arguments so they can update the existing artifacts incrementally.
[v<version>] sections in PRD.md andupdating their output files accordingly (appending new fields, modifying existing diagrams, updating specs and test scenarios).
#### Bug Regression Awareness (Redo/Redevelop Scenario)
PRD.md modules may contain a ### Bug section listing previously fixed bugs (e.g., [BUG-024] Fixed Message ID link...). These entries represent validated fixes from prior development cycles. When generating or updating artifacts, sub-skills MUST treat bug fix entries as supplementary requirements:
the model output must reflect the corrected structure.
the mockup must reflect the corrected design.
validation), the specification must include the corrected behavior.
regression coverage — each bug fix should have at least one corresponding test assertion.
This ensures that when an application is redeveloped from scratch, previously reported bugs do not reappear in the new implementation.
#### PRD.md Extended Sections Awareness
PRD.md may contain three extended sections that influence how downstream skills are invoked and what context they receive. Detect each section's presence at the start of Phase 1 and record the result for use throughout the version loop:
decisions and resolved-file-path propagation to mockgen- and specgen-. No additional action needed; Step 1.5 is the canonical handler.
Step 1.7 (Infer Technology Stack) as the primary signal for routing decisions. Sub-skills (modelgen-, specgen-) read it directly from PRD.md.
# High Level Process Flow section. If present, record:[FLOW_DIAGRAM.md](reference/FLOW_DIAGRAM.md))knows process flows are available and should be consulted:
message consumer/publisher design
flow step in order
(existing behavior).
Record the detection result (Design System: yes/no, Architecture Principle: yes/no, Process Flow: yes/no + flow names) in your working memory for the duration of the run. This awareness does NOT replace each sub-skill's own reading of PRD.md — every sub-skill reads PRD.md directly, but knowing which sections are present helps the orchestrator detect missing pre-requisites early and surface them to the user.
#### Step 1.1: Resolve Application Folder
<application> argument against root-level folders (same logic as Input Resolution)<app_folder> is the root for all context artifacts<app_folder>/context/PRD.md exists — if not, stop with error#### Step 1.1.1: Initialize Preparation Tracking (PREPARE_MASTER.md)
This step runs ONCE before the version loop starts (like tagging). It creates the progress tracker that this skill — and any resumed Ralph Loop iteration — reads to know what is done.
<app_folder>/context/prepare/PREPARE_MASTER.md already exists, read it and reconcile itagainst the resolved version list (add rows for any newly-resolved versions as PENDING). Do NOT overwrite existing COMPLETED rows.
<app_folder>/context/prepare/PREPARE_MASTER.md with thestructure below (pre-seed every row as PENDING; the version loop and steps below flip rows to COMPLETED / SKIPPED as they run). Add one Artifact Generation Status table per resolved version.
# Preparation Master - <Application Name>
**Started**: <date>
**Context**: <app_folder>/context
**Resolved Versions**: <comma-separated sorted version list, e.g., "v1.0.0, v1.0.1, v1.0.2">
**Status**: IN PROGRESS
---
## Inferred Configuration
| Aspect | Value | Source |
|--------|-------|--------|
| Database Type | TBD | - |
| Model Generator | TBD | - |
| Design System | TBD | - |
| Mockup Generator | TBD | - |
| Technology Stack | TBD | - |
| Spec Generator | TBD | - |
> Filled in by the inference steps (1.3, 1.5, 1.7) as the pipeline runs.
---
## User Story Tagging (runs ONCE, applies to all versions)
| Step | Skill | Status | Completed |
|------|-------|--------|-----------|
| 1.2 Tag items | util-ustagger | PENDING | - |
---
## Version Processing Order
| # | Version | Status | Started | Completed |
|---|---------|--------|---------|-----------|
| 1 | v1.0.0 | PENDING | - | - |
| 2 | v1.0.1 | PENDING | - | - |
> **Processing Rule**: All artifacts for version N must reach COMPLETED before version N+1 begins.
---
## Artifact Generation Status
One table per version. `SKIPPED` = artifact already existed and this is NOT a version increment.
### v1.0.0
| Step | Artifact | Skill | Status | Completed |
|------|----------|-------|--------|-----------|
| 1.4 | Module Model | modelgen-* | PENDING | - |
| 1.6 | HTML Mockups | mockgen-* | PENDING | - |
| 1.8 | Technical Spec | specgen-* | PENDING | - |
| 1.9 | Test Spec | testgen-functional | PENDING | - |
### v1.0.1
<one table per resolved version, same columns>PENDING, IN PROGRESS, COMPLETED, SKIPPED.##### Tracking Updates (MANDATORY)
After each step below completes, update PREPARE_MASTER.md in place — never leave a finished step marked PENDING. Use this mapping:
| After step | Update in PREPARE_MASTER.md |
|---|---|
| 1.2 Tag User Stories | User Story Tagging table → COMPLETED + date |
| 1.3 Infer Database Type | Inferred Configuration → Database Type + Model Generator (with source) |
| 1.4 Generate Module Model | current version's Artifact table → Module Model = COMPLETED (or SKIPPED) |
| 1.5 Infer Design System | Inferred Configuration → Design System + Mockup Generator (with source) |
| 1.6 Generate HTML Mockups | current version's Artifact table → HTML Mockups = COMPLETED (or SKIPPED) |
| 1.7 Infer Technology Stack | Inferred Configuration → Technology Stack + Spec Generator (with source) |
| 1.8 Generate Technical Spec | current version's Artifact table → Technical Spec = COMPLETED (or SKIPPED) |
| 1.9 Generate Test Spec | current version's Artifact table → Test Spec = COMPLETED (or SKIPPED) |
| Version's 4 artifacts all done | Version Processing Order → that version = COMPLETED + date; then start the next version (mark it IN PROGRESS) |
At the START of each version iteration, mark that version IN PROGRESS in the Version Processing Order table. Mark an artifact SKIPPED (not COMPLETED) when the step is skipped because the artifact already existed and this is not a version increment.
#### Step 1.2: Tag User Stories
Tag all untagged items in PRD.md with unique ID codes before any artifact generation begins. This ensures all user stories, NFRs, constraints, and references have stable IDs that downstream artifacts (module models, specs, tests) can reference for traceability.
This step runs ONCE before the version loop starts (not per-version), because tagging applies to all items regardless of version.
v2)version argument (all) → use v1 as the defaultSkill(skill: "co2-skills:util-ustagger", args: "<application> <version>")Skill(skill: "co2-skills:util-ustagger", args: "mainapp v1")#### Step 1.3: Infer Database Type
#### Step 1.4: Generate Module Model
<app_folder>/context/model/.md or .json files already exist AND this is NOT a version increment → SKIP this stepSkill(skill: "co2-skills:modelgen-relational", args: "<app_folder> [version:<version>] [module:<module>]")Skill(skill: "co2-skills:modelgen-nosql", args: "<app_folder> [version:<version>] [module:<module>]")<app_folder>/context/model/#### Step 1.5: Infer Design System
DESIGN_SYSTEM.md file (e.g., [DESIGN_SYSTEM.md](reference/DESIGN_SYSTEM.md)), resolve the file path relative to PRD.md#### Step 1.6: Generate HTML Mockups
<app_folder>/context/mockup/.html files already exist AND this is NOT a version increment → SKIP this stepmockgen-* patternSkill(skill: "co2-skills:mockgen-tailwind", args: "<app_folder> [version:<version>] [module:<module>]")mockgen-tailwind if no specific generator matches the design system<app_folder>/context/mockup/#### Step 1.7: Infer Technology Stack
#### Step 1.8: Generate Technical Specification
<app_folder>/context/specification/.md files already exist AND this is NOT a version increment → SKIP this stepspecgen-* patternSkill(skill: "co2-skills:specgen-laravel-eloquent-bladehtmx", args: "<app_folder> [version:<version>] [module:<module>]")Skill(skill: "co2-skills:specgen-spring-jpa-jtehtmx", args: "<app_folder> [version:<version>] [module:<module>]")Skill(skill: "co2-skills:specgen-node-cli-web", args: "<app_folder> [version:<version>] [module:<module>]")<app_folder>/context/specification/#### Step 1.9: Generate Test Specification
<app_folder>/context/test/.md files already exist AND this is NOT a version increment → SKIP this stepSkill(skill: "co2-skills:testgen-functional", args: "<app_folder> [version:<version>] [module:<module>]")<app_folder>/context/test/#### Phase 1 Completion
After all artifacts for ALL versions in the resolved version list are generated (or confirmed to already exist):
**Status**: in <app_folder>/context/prepare/PREPARE_MASTER.md toCOMPLETED, and verify every step and every version row is COMPLETED or SKIPPED (no PENDING / IN PROGRESS rows remain)
<promise>ALL ARTIFACTS GENERATED</promise> to signal Ralph Loop completionIMPORTANT — Version loop completion: The completion promise is ONLY output after the LAST version in the resolved list has been fully processed. Do NOT output it after completing an intermediate version — proceed to the next version immediately.
it for all project details, database types, technology stacks, and infrastructure configuration.
This ensures the skill can be safely re-run or resumed without duplicating work.
from the prior version already exist when the next version begins. ALL sub-skills must be re-invoked in update mode for each subsequent version.
moduleargument (if provided) MUST be passed to every sub-skill invocation. Each sub-skill receives a SINGLE version at a time, never a list.
in ascending semver order. All artifacts for version N must complete before version N+1 begins. Never process versions in parallel or merge them into a single invocation.
the Ralph Loop will automatically re-feed the prompt, and the next iteration will resume from the first step with missing artifacts.
MUST be to check if Ralph Loop is active (.claude/ralph-loop.local.md exists). If not active, invoke the Ralph Loop skill. Do NOT proceed with any work until Ralph Loop is confirmed active.
skill that runs a multi-step pipeline (Steps 1.1 through 1.9) across potentially multiple versions. When a sub-skill (e.g., util-ustagger, modelgen-relational, mockgen-tailwind, specgen-, testgen-functional) completes and returns control, you MUST immediately proceed to the NEXT step in the pipeline. When all steps for the current version are done, you MUST immediately proceed to the NEXT version. Do NOT stop, do NOT wait for user input, do NOT treat a sub-skill or version completion as the end of your task. The task is only complete when ALL steps for ALL versions have been executed and the completion promise `<promise>ALL ARTIFACTS GENERATED</promise>` has been output. Stopping after any intermediate step or version is a bug in execution.*
<app_folder>/context/prepare/PREPARE_MASTER.md per the Tracking Updates table in Step 1.1.1. On resume (any Ralph Loop iteration), read it FIRST to determine what is already done; do NOT re-run steps it marks COMPLETED (unless in version increment mode). Reconcile it against the artifact folders on disk if they disagree.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.