Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
190 changes: 190 additions & 0 deletions .agents/plans/us-275/step-02-us-275.plan.refined.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .agents/skills/ws-activity-report/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-activity-report
version: 0.3.59
version: 0.3.60
description: >-
Timesheet entries (date, start, end, description) for ws-spec-to-pr /
ws-spec-to-pr-lite deliveries. Start = earliest bootstrap file creation in
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-changelog/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-changelog
version: 0.3.59
version: 0.3.60
description: Summarized task history writer — appends concise, structured task completion records to the project changelog file.
invocation_names:
- changelog
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-check-harness/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: ws-check-harness
description: Meta-harness integrity auditor — scans routing, links, portability, integrity digests, instruction duplication, role clarity, and skill composition topology.
disable-model-invocation: true
version: 0.3.59
version: 0.3.60
invocation_names:
- check-harness
- ws-check-harness
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-check-workflows/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-check-workflows
description: Workflow FSM simulation runner — validates step continuity, state isolation, provider dispatch, and artifact transitions across standard, lite, and multi-spec pipelines.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- check-workflows
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-classify-complexity/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-classify-complexity
description: Pipeline complexity classifier — analyzes a spec against config.json dagThresholds and recommends ws-spec-to-pr-lite or ws-spec-to-pr (standard).
version: 0.3.59
version: 0.3.60
invocation_names:
- classify-complexity
- ws-classify-complexity
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-cleanup/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-cleanup
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
description: >-
Lists disposable workflow leftovers (telemetry, .runtime, fix-pr temps,
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-code-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-code-review
description: Local two-phase code review with fix → re-review loops (max 3). Trigger when reviewing a branch/diff before ship, or when orch Step 6 / lite Step 3 runs.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- code-review
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-configure-project/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-configure-project
version: 0.3.59
version: 0.3.60
description: Project configuration wizard — detects project settings and interviews config.json sections (including preview.dryRunCommand and optional specMemo).
invocation_names:
- configure-project
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-doctor/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-doctor
description: Workflow skills diagnostic inspector — read-only diagnose of path errors, tool/script recipes, config switches, and missing references across installed ws-* skills.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- doctor
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-fable-domain/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-fable-domain
description: Domain adapter generator & schemas — binds domain authority, minimum evidence sets, observation rules, and fraud definitions for DevOps, Data, Research, and Ops.
version: 0.3.59
version: 0.3.60
invocation_names:
- ws-fable-domain
- /ws-fable-domain
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-fable-judge/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-fable-judge
description: Adversarial audit of claimed work against git diffs and re-run verifications. Trigger after claimed completion, during local review, or before merge.
version: 0.3.59
version: 0.3.60
invocation_names:
- ws-fable-judge
- /ws-fable-judge
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-fable-method/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-fable-method
description: 7-step structured problem-solving methodology — evidence-based problem classification, primary-source investigation, surgical action, and adversarial verification for complex tasks.
version: 0.3.59
version: 0.3.60
invocation_names:
- ws-fable-method
- /ws-fable-method
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-fix-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-fix-pr
description: Single-pass PR thread fixer — resolves active GitHub or ADO PR review threads, applying targeted code fixes and posting progress reports.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- fix-pr
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-goal-fix-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-goal-fix-pr
description: PR thread convergence loop — orchestrates iterative fix-pr rounds until all open PR review threads are resolved and checks pass.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- goal-fix-pr
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-goal-loop/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-goal-loop
description: Generic convergence loop primitive — stateful loop engine providing sentinel management, heartbeat/settle timers, and re-check convergence control.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- goal-loop
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-implement-tasks/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-implement-tasks
description: Task implementation & fix executor — builds planned features following task DAGs or applies surgical defect fixes from code review findings.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- implement-tasks
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-karpathy-guidelines/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-karpathy-guidelines
version: 0.3.59
version: 0.3.60
description: Micro code diff hygiene guidelines — reduces LLM coding mistakes through surgical changes, minimal diff footprints, and surfacing assumptions.
license: MIT
invocation_names:
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-plan-interview/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-plan-interview
description: Interactive plan interrogation engine — audits implementation plans to uncover hidden assumptions, resolve ambiguities, and refine technical designs.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- plan-interview
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-plan-to-tasks/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-plan-to-tasks
description: Task DAG breakdown generator — transforms approved implementation plans into atomic, dependency-mapped task execution graphs.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- plan-to-tasks
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-plan-update/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-plan-update
description: Post-ship QA delta manager — captures manual QA findings, plans delta fixes, executes modifications, and updates delivery summaries.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- plan-update
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-plan-verify/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-plan-verify
description: Spec compliance scorer (0–10). Pipeline advances only at score ≥ `defaults.minVerifyScore` (default 9); below bar runs scoreAndRefine. Trigger for check-implementation or orch Step 5.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- plan-verify
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-plan-write/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-plan-write
description: Implementation plan generator — transforms feature specifications into structured, technical step-01 implementation plans.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- plan-write
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-pre-daily/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-pre-daily
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
description: Standup briefing of the last 36 hours — delivered, made, ongoing, next.
invocation_names:
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-preview/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-preview
description: Run the consumer-configured local pipeline review dry-run command without publishing PR threads.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- ws-preview
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-run-benchmark/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-run-benchmark
version: 0.3.59
version: 0.3.60
description: >-
Upstream-only package-root fixture compare. Never during ws-spec-to-pr.
Trigger only on explicit /ws-run-benchmark from the workflow-skills source tree.
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-secrets-leak-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-secrets-leak-review
version: 0.3.59
version: 0.3.60
description: Secrets & PII leak auditor with an optional runtime-resolving pre-commit hook for local or global installs.
allowed-tools: Read, Grep, Glob
invocation_names:
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-self-learning/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-self-learning
version: 0.3.59
version: 0.3.60
description: Anti-regression memory engine — consults shared MEMORY before planning/coding and records newly discovered traps into the project knowledge hub.
invocation_names:
- self-learning
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-senior-developer/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-senior-developer
description: Engineering delivery gate for scope control, anti-reinvention, ambiguity stops via user-gate, and pre-ship proof. Invoke via rules.seniorDeveloper or /senior-developer.
version: 0.3.59
version: 0.3.60
invocation_names:
- senior-developer
- ws-senior-developer
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-shared/gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Host binding: [`tools.md`](tools.md) § Host-tool binding & dispatch tiers (`ask
3. If `askQuestionTool` binds `none` → present the **same options** as a short markdown list; wait for user reply. Log: `user-gate-fallback | {gate} | ISO`.
4. Markdown fallback turn-yielding (mandatory): when a `user-gate` is presented as text/markdown, output ONLY the question and options and MUST NOT emit any tool calls in the same response turn — immediately yield the turn to wait for user input. Emitting a gate plus Step N+1 tool calls in one turn violates this gate.
5. Cancelled / dismissed → **HS-1** (STOP; re-present; never infer yes).
6. `autoMode` → zero `user-gate` prompts of any kind (neither modal tool nor markdown) at **every** boundary — entry, transition, G2-code, close, ship, fix-PR; use orch auto-gate table (index 0) to automatically select the recommended option and proceed to the next step without pausing.
6. `autoMode` → zero `user-gate` prompts of any kind (neither modal tool nor markdown) at **every** boundary — entry, transition, G2-code, close, ship, fix-PR; use orch auto-gate table (index 0) to automatically select the recommended option and proceed to the next step without pausing. **`autoMode` does not skip planning:** the full FSM 0→9 still runs; only gates are automatic. An existing parent feature branch (e.g. `feat/{parent}`) plus a child bug/task slug does not waive Steps 1–3 for the **child slug** — only an explicit user override may shorten planning.

## Interactive execution cadence (One Step Per Turn)

Expand Down
42 changes: 40 additions & 2 deletions .agents/skills/ws-shared/scripts/workflow_state.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -1171,6 +1171,14 @@ function skippedReason(state, step) {
return item && item.reason ? String(item.reason) : '';
}

function stepCompleted(state, step) {
return (state.completedSteps || []).map(Number).includes(Number(step));
}

function stepSkipped(state, step) {
return (state.skippedSteps || []).some((row) => Number(row.step) === Number(step));
}

function requiredAdvanceArtifact(pipeline, next, state) {
const slug = state.slug || state.us;
if (!slug) return null;
Expand Down Expand Up @@ -1264,6 +1272,29 @@ function validateSnapshot({ stateFile, runFile, indexFile, context, maxStep, pre
}
const ledgerFile = path.join(path.dirname(mdPath), 'ac-ledger.json');
if (next >= 1 && !fs.existsSync(ledgerFile)) errors.push('ac-ledger.json is required before advance');
if (Number(next) === 4 && flow === 'standard') {
const slug = state.slug || state.us;
const usDir = path.dirname(mdPath);
const step2Reason = skippedReason(state, 2);
if (!stepCompleted(state, 1)) {
errors.push('step 1 must be completed before implement');
}
if (!stepCompleted(state, 2) && step2Reason !== 'interview-not-required') {
errors.push('step 2 must be completed or skipped with reason interview-not-required before implement');
Comment thread
jpolvora marked this conversation as resolved.
}
const step3Reason = skippedReason(state, 3);
if (!stepCompleted(state, 3) && step3Reason !== 'dag-disabled') {
errors.push('step 3 must be completed or skipped with reason dag-disabled before implement');
}
if (slug) {
const needRefined = stepCompleted(state, 2) && step2Reason !== 'interview-not-required';
Comment thread
jpolvora marked this conversation as resolved.
const planFile = needRefined ? `step-02-${slug}.plan.refined.md` : `step-01-${slug}.plan.md`;
const planPath = path.join(usDir, planFile);
if (!fs.existsSync(planPath)) {
errors.push(`required artifact missing: ${toRepoRelative(context.repoRoot, planPath, { allowOutside: true })}`);
}
}
}
if (next >= 6 && fs.existsSync(ledgerFile)) {
const ledger = JSON.parse(fs.readFileSync(ledgerFile, 'utf8'));
const boundary = next === 6 ? 'pre-step6' : next >= 9 ? 'ship' : 'step5';
Expand Down Expand Up @@ -1384,8 +1415,11 @@ function rebuildIndex(context, config) {
}

function runValidateCli(config) {
let options = {};
try {
const { positional, options } = parseArgs(process.argv.slice(2));
const parsed = parseArgs(process.argv.slice(2));
options = parsed.options;
const { positional } = parsed;
if (options.help) {
process.stdout.write('Usage: validate_state.cjs <state|workflowId|rebuild-index> [--pre-advance N] [--repo-root DIR]\n');
return;
Expand All @@ -1409,7 +1443,11 @@ function runValidateCli(config) {
});
process.stdout.write(`${JSON.stringify({ ...result, state: toRepoRelative(context.repoRoot, stateFile, { allowOutside: true }) }, null, 2)}\n`);
} catch (error) {
process.stderr.write(`ERROR: ${error.message}\n`);
let message = error.message;
if (options.preAdvance !== undefined && Number(requirePreAdvanceStep(options.preAdvance)) === 4 && config.pipeline === 'standard' && !message.includes('HS-5')) {
message = `${message}; HS-5`;
}
process.stderr.write(`ERROR: ${message}\n`);
process.exitCode = 1;
}
}
Expand Down
3 changes: 3 additions & 0 deletions .agents/skills/ws-shared/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ Standalone `/spec-write` writes `{specsDir}/{slug}.spec.md` only (`plans.specsDi
| `branch` | `{branch}` |
| `baseBranch` | `{baseBranch}` |
```
When `autoMode` is true, append one line immediately after the table: `autoMode: gates automatic; FSM 0→9 intact; no product code until Step 4 after plan artifacts exist on disk.`
Write this block immediately after flag parsing, before auto-resume. Applies in all modes (normal, auto, dry-run). In `dryRun`, prefix with `[DRY-RUN]`.
4. **Auto resume** or **Active Resume** (see [Resume / reset](#resume--reset)).
5. **Identity**: `workflow-id`, `slug`, `us-dir`.
Expand All @@ -115,6 +116,8 @@ Standalone `/spec-write` writes `{specsDir}/{slug}.spec.md` only (`plans.specsDi

**`autoMode`:** no `user-gate`. If `{currentBranch}` is `HEAD` (detached): do **not** stay — if `feat/{slug}` exists locally or `ls-remote` shows it, check it out (`checkout-existing`; fetch first when the name is remote-only, per the table below); else create `feat/{slug}` from HEAD (`git checkout -b feat/{slug}`). If `git ls-remote --heads {gitRemote} feat/{slug}` fails for auth/network (non-zero exit, not a missing ref), fall back to **local check only**: create `feat/{slug}` from HEAD only when `git branch --list feat/{slug}` is empty, and log `branch-gate | auto | local-check-only | {branch} | ISO`; never infer "branch absent" from a failed `ls-remote`. Never persist the literal `HEAD` as `state.branch`. Otherwise **stay** on current HEAD (no git mutation), `branchStrategy: stay`. Set `state.branch` = final branch name, `branchStrategy` = `from-current` | `checkout-existing` | `stay`, `baseBranch` = resolved value. Log in `## Gate history`: `branch-gate | auto | stay|from-current|checkout-existing|local-check-only | {branch} | ISO`.

**Child slug on existing parent branch:** when the workflow slug is a child bug/task id and HEAD is already on a parent feature branch (e.g. `feat/{parent}`), that does not waive Steps 1–3 for the **child slug** — run the full planning chain unless the user explicitly overrides.

**`dryRun`:** prefix `[DRY-RUN]`; show the gate choices (or auto default) and the git commands that **would** run; **no ref mutation** (do not run `git checkout -b`, `git checkout`, or `git fetch`).

**Normal mode — primary `user-gate`** (portable alias `user-gate`; native structured choice when available; markdown fallback; log `user-gate-fallback | feature-branch | ISO` when fallback used). Mark **exactly one** Recommended:
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-shared/skill-dependencies.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"version": 1,
"packageVersion": "0.3.59",
"packageVersion": "0.3.60",
"upstream": {
"repo": "jpolvora/workflow-skills",
"url": "https://github.com/jpolvora/workflow-skills",
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-ship-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-ship-pr
description: End-to-end PR shipping manager — drives prepare-to-PR checklists, pushes code, creates PRs, waits for CI, and manages convergence.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- ship-pr
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-show-harness/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-show-harness
description: Session harness snapshot generator — reports active skills, rules, precedence hierarchy, and capabilities for the current session.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- ws-show-harness
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-spec-archive/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-spec-archive
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
description: >-
Harvests plansDir delivery facts into specsDir/index.PRD, then proposes
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-spec-explain/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: ws-spec-explain
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
description: >-
Read-only panorama of a spec or US/issue — status, what it does, what it
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-spec-format/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-spec-format
description: Specification schema & validator — defines canonical *.spec.md format, section hierarchy, and acceptance criteria rules.
version: 0.3.59
version: 0.3.60
invocation_names:
- spec-format
- ws-spec-format
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/ws-spec-from-provider/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: ws-spec-from-provider
description: Bulk-import open GitHub issues or ADO User Stories into local specs (spec-write + register). Trigger when importing tracker backlog to {specsDir} for ws-spec-list / ws-spec-multi.
version: 0.3.59
version: 0.3.60
disable-model-invocation: true
invocation_names:
- spec-from-provider
Expand Down
Loading