@williambeto/ai-workflow 1.18.15 → 1.18.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: codex-pr-workflow
2
+ name: pr-orchestrator
3
3
  description: Use when planning, implementing, reviewing, or validating small pull requests with Codex while preserving scope and avoiding regressions.
4
4
  ---
5
5
 
6
6
  > Token economy active: keep output compact, context minimal. Reference: `token-economy` + `minimal-context` skills.
7
7
 
8
- # Codex PR Workflow Skill
8
+ # PR Orchestrator Skill
9
9
 
10
10
  ## Purpose
11
11
 
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [1.18.17](https://github.com/williambeto/ai-workflow/compare/v1.18.16...v1.18.17) (2026-05-23)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **init:** ignore generated workflow footprint ([15eba7a](https://github.com/williambeto/ai-workflow/commit/15eba7a2ac3ad81af3f6e6984be900717a6e89ef))
7
+ * **init:** use canonical opencode full config ([8b8551d](https://github.com/williambeto/ai-workflow/commit/8b8551d5af00b8924dbc8f2244b159f091fcb810))
8
+
9
+ ## [1.18.16](https://github.com/williambeto/ai-workflow/compare/v1.18.15...v1.18.16) (2026-05-22)
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **audit:** harden artifact safety and align CLI/OpenCode catalog ([047c3bd](https://github.com/williambeto/ai-workflow/commit/047c3bd92d2d7fd3bc7bef2afc5f29a8fba441e9))
15
+ * **audit:** harden artifact safety and align CLI/OpenCode catalog ([a13f489](https://github.com/williambeto/ai-workflow/commit/a13f489c1a5cc7a06ba67580b30dd30f670d9b62))
16
+
1
17
  ## [1.18.15](https://github.com/williambeto/ai-workflow/compare/v1.18.14...v1.18.15) (2026-05-22)
2
18
 
3
19
 
package/README.md CHANGED
@@ -64,6 +64,7 @@ Use:
64
64
  - `templates/SPEC.template.md`
65
65
  - `checklists/spec-readiness-checklist.md`
66
66
  - `runbooks/spec-driven-development.md`
67
+ - `runbooks/branch-cleanup.md`
67
68
 
68
69
  ## The anti-chaos rules
69
70
 
@@ -242,7 +242,7 @@ Skills define focused behavior for AI agents. Use exactly one primary skill per
242
242
  | --- | --- |
243
243
  | [`product-manager`](.agents/skills/product-manager/SKILL.md) | Clarifying requirements, users, scope, and acceptance criteria. |
244
244
  | [`tech-lead`](.agents/skills/tech-lead/SKILL.md) | Planning architecture, trade-offs, risks, and sequencing. |
245
- | [`codex-pr-workflow`](.agents/skills/codex-pr-workflow/SKILL.md) | Splitting, executing, reviewing, and summarizing small PRs. |
245
+ | [`pr-orchestrator`](.agents/skills/pr-orchestrator/SKILL.md) | Splitting, executing, reviewing, and summarizing small PRs. |
246
246
  | [`frontend-implementer`](.agents/skills/frontend-implementer/SKILL.md) | Frontend UI, routing, state, styling, and accessibility work. |
247
247
  | [`backend-implementer`](.agents/skills/backend-implementer/SKILL.md) | APIs, services, data, validation, auth, and server-side tests. |
248
248
  | [`tester`](.agents/skills/tester/SKILL.md) | Acceptance criteria, regression coverage, and validation evidence. |
@@ -266,7 +266,7 @@ Skills define focused behavior for AI agents. Use exactly one primary skill per
266
266
  | --- | --- |
267
267
  | Requirement or acceptance criteria | `product-manager` |
268
268
  | Technical plan | `tech-lead` |
269
- | PR breakdown | `codex-pr-workflow` |
269
+ | PR breakdown | `pr-orchestrator` |
270
270
  | Frontend implementation | `frontend-implementer` |
271
271
  | Backend implementation | `backend-implementer` |
272
272
  | Test strategy or review | `tester` |
@@ -79,9 +79,9 @@ Delegation policy baseline:
79
79
  When routing to an agent, use this baseline skill auto-load map:
80
80
 
81
81
  ```txt
82
- planner -> product-manager + tech-lead + codex-pr-workflow
83
- implementer -> codex-pr-workflow + tester + (frontend-implementer or backend-implementer)
84
- reviewer -> tester + codex-pr-workflow
82
+ planner -> product-manager + tech-lead + pr-orchestrator
83
+ implementer -> pr-orchestrator + tester + (frontend-implementer or backend-implementer)
84
+ reviewer -> tester + pr-orchestrator
85
85
  validator -> build-and-validate + tester
86
86
  release-manager -> deploy-engineer
87
87
  ```
package/opencode.jsonc CHANGED
@@ -96,10 +96,10 @@
96
96
  "description": "Plan and review deployment, release, rollback, CI/CD readiness",
97
97
  "prompt": "{file:.agents/skills/deploy-engineer/SKILL.md}"
98
98
  },
99
- "codex-pr-workflow": {
99
+ "pr-orchestrator": {
100
100
  "mode": "subagent",
101
101
  "description": "Plan and validate small PRs, preserve scope, avoid regressions",
102
- "prompt": "{file:.agents/skills/codex-pr-workflow/SKILL.md}"
102
+ "prompt": "{file:.agents/skills/pr-orchestrator/SKILL.md}"
103
103
  },
104
104
  "build-and-validate": {
105
105
  "mode": "subagent",
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.18.15",
2
+ "version": "1.18.17",
3
3
  "name": "@williambeto/ai-workflow",
4
4
  "description": "AI Workflow Kit repository for designing and validating AI-assisted software delivery workflows with Codex and OpenCode",
5
5
  "license": "MIT",
@@ -56,6 +56,7 @@
56
56
  "validate:json": "node scripts/validate-json.mjs",
57
57
  "validate:structure": "node scripts/validate-structure.mjs",
58
58
  "validate:refs": "node scripts/validate-refs.mjs",
59
+ "validate:artifact-safety": "node scripts/validate-artifact-safety.mjs",
59
60
  "validate:links": "node scripts/validate-links.mjs",
60
61
  "validate:docs-consistency": "node scripts/validate-doc-consistency.mjs",
61
62
  "validate:workflow": "node scripts/validate-workflow.mjs",
@@ -20,6 +20,65 @@ function printPlan(actions) {
20
20
  }
21
21
  }
22
22
 
23
+ function toIgnoreEntries(linkPath) {
24
+ if (linkPath === "README.workflow.md") {
25
+ return [linkPath];
26
+ }
27
+
28
+ const normalized = linkPath.endsWith("/") ? linkPath.slice(0, -1) : linkPath;
29
+ return [normalized, `${normalized}/`];
30
+ }
31
+
32
+ function buildGitignoreBlock(entries) {
33
+ const unique = Array.from(new Set(entries));
34
+ const sorted = unique.sort((a, b) => a.localeCompare(b));
35
+
36
+ return [
37
+ "# BEGIN AI WORKFLOW KIT",
38
+ "# AI Workflow Kit generated files",
39
+ ...sorted,
40
+ "# END AI WORKFLOW KIT"
41
+ ].join("\n");
42
+ }
43
+
44
+ async function upsertGitignoreBlock(cwd, entries) {
45
+ const gitignorePath = path.join(cwd, ".gitignore");
46
+ const block = buildGitignoreBlock(entries);
47
+ const beginMarker = "# BEGIN AI WORKFLOW KIT";
48
+ const endMarker = "# END AI WORKFLOW KIT";
49
+
50
+ const hasGitignore = await exists(gitignorePath);
51
+ if (!hasGitignore) {
52
+ await writeFileSafe(gitignorePath, `${block}\n`);
53
+ return "created";
54
+ }
55
+
56
+ const current = await fs.readFile(gitignorePath, "utf8");
57
+ const beginIndex = current.indexOf(beginMarker);
58
+ const endIndex = current.indexOf(endMarker);
59
+
60
+ if (beginIndex >= 0 && endIndex > beginIndex) {
61
+ const before = current
62
+ .slice(0, beginIndex)
63
+ .replace(/\n?# AI Workflow Kit generated files\n?$/, "\n")
64
+ .replace(/[ \t]+$/gm, "")
65
+ .replace(/\n*$/, "\n");
66
+ const afterStart = endIndex + endMarker.length;
67
+ const after = current.slice(afterStart).replace(/^\n*/, "\n");
68
+ const next = `${before}${block}${after}`;
69
+ if (next !== current) {
70
+ await writeFileSafe(gitignorePath, next);
71
+ return "updated";
72
+ }
73
+ return "unchanged";
74
+ }
75
+
76
+ const separator = current.endsWith("\n") ? "\n" : "\n\n";
77
+ const next = `${current}${separator}${block}\n`;
78
+ await writeFileSafe(gitignorePath, next);
79
+ return "updated";
80
+ }
81
+
23
82
  export async function runInit({ cwd, yes, force, dryRun, noInstall, noOverwrite, profile }) {
24
83
  const selectedProfile = profile ?? "full";
25
84
  const installRoot = ".ai-workflow";
@@ -139,10 +198,20 @@ export async function runInit({ cwd, yes, force, dryRun, noInstall, noOverwrite,
139
198
  ? { reason: "skipped (minimal profile)" }
140
199
  : await mergeOpencodeConfig(cwd, { force, backupRoot, profile: selectedProfile });
141
200
 
201
+ const generatedIgnoreEntries = [
202
+ ".ai-workflow/",
203
+ ".ai-workflow.json",
204
+ ".ai-workflow-backups/",
205
+ ...linkEntries.flatMap((entry) => toIgnoreEntries(entry.linkPath))
206
+ ];
207
+
208
+ const gitignoreResult = await upsertGitignoreBlock(cwd, generatedIgnoreEntries);
209
+
142
210
  console.log("Installation complete.");
143
211
  console.log(`- profile: ${selectedProfile}`);
144
212
 
145
213
  console.log(`- opencode.jsonc: ${opencodeResult.reason}`);
214
+ console.log(`- .gitignore: ${gitignoreResult}`);
146
215
  console.log(`- symlink layout: ${linkCreated.length > 0 ? `created ${linkCreated.length}` : "already-up-to-date"}`);
147
216
  if (backups.length > 0) {
148
217
  console.log(`- backups created: ${backups.length}`);
@@ -1,10 +1,40 @@
1
1
  import path from "node:path";
2
2
  import { exists, readJsonc, writeFileSafe } from "./filesystem.js";
3
3
  import { createManagedBackup } from "./backup.js";
4
+ import { readPackageFile } from "./package-assets.js";
4
5
 
5
6
  const LEGACY_MARKER = "_aiWorkflowManaged";
6
7
 
8
+ function loadCanonicalFullConfig() {
9
+ try {
10
+ const raw = readPackageFile("opencode.jsonc");
11
+ if (!raw) return null;
12
+ const parsed = JSON.parse(raw);
13
+
14
+ if (!parsed || typeof parsed !== "object") return null;
15
+ if (!parsed.agent || !parsed.command) return null;
16
+
17
+ if (!parsed.agent.default) {
18
+ parsed.agent.default = {
19
+ mode: "primary",
20
+ description: "Default OpenCode agent for this project",
21
+ prompt:
22
+ "You are the default OpenCode agent for this repository. Follow local project docs and validation commands."
23
+ };
24
+ }
25
+
26
+ return parsed;
27
+ } catch {
28
+ return null;
29
+ }
30
+ }
31
+
7
32
  function buildManagedConfig(profile = "full") {
33
+ const canonicalFull = profile === "full" ? loadCanonicalFullConfig() : null;
34
+ if (canonicalFull) {
35
+ return canonicalFull;
36
+ }
37
+
8
38
  const fullPrimaryAgents =
9
39
  profile === "full"
10
40
  ? {
@@ -31,7 +61,7 @@ function buildManagedConfig(profile = "full") {
31
61
  ? {
32
62
  "backend-implementer": { mode: "subagent", description: "Backend implementation specialist", prompt: "{file:./.agents/skills/backend-implementer/SKILL.md}" },
33
63
  "build-and-validate": { mode: "subagent", description: "Build and validation specialist", prompt: "{file:./.agents/skills/build-and-validate/SKILL.md}" },
34
- "codex-pr-workflow": { mode: "subagent", description: "PR breakdown and flow specialist", prompt: "{file:./.agents/skills/codex-pr-workflow/SKILL.md}" },
64
+ "pr-orchestrator": { mode: "subagent", description: "PR breakdown and flow specialist", prompt: "{file:./.agents/skills/pr-orchestrator/SKILL.md}" },
35
65
  "deploy-engineer": { mode: "subagent", description: "Deploy and release specialist", prompt: "{file:./.agents/skills/deploy-engineer/SKILL.md}" },
36
66
  "docs-writer": { mode: "subagent", description: "Documentation specialist", prompt: "{file:./.agents/skills/docs-writer/SKILL.md}" },
37
67
  "frontend-implementer": { mode: "subagent", description: "Frontend implementation specialist", prompt: "{file:./.agents/skills/frontend-implementer/SKILL.md}" },
@@ -114,6 +144,14 @@ export async function mergeOpencodeConfig(cwd, { force = false, backupRoot = ".a
114
144
  const next = {
115
145
  ...currentWithoutLegacy,
116
146
  $schema: current.$schema ?? managed.$schema,
147
+ ...(managed.mcp
148
+ ? {
149
+ mcp: {
150
+ ...(current.mcp ?? {}),
151
+ ...managed.mcp
152
+ }
153
+ }
154
+ : {}),
117
155
  agent: {
118
156
  ...(current.agent ?? {}),
119
157
  ...managed.agent
@@ -38,6 +38,21 @@ export function readPackageFile(relativePath) {
38
38
  }
39
39
  }
40
40
 
41
+ /**
42
+ * Resolve the current kit version from package metadata.
43
+ * Returns null if package.json cannot be read/parsed.
44
+ */
45
+ export function getPackageVersion() {
46
+ try {
47
+ const raw = readPackageFile("package.json");
48
+ if (!raw) return null;
49
+ const parsed = JSON.parse(raw);
50
+ return typeof parsed.version === "string" ? parsed.version : null;
51
+ } catch {
52
+ return null;
53
+ }
54
+ }
55
+
41
56
  /**
42
57
  * Discover ALL files under a package-relative directory.
43
58
  * Returns a flat map of { relativePath: content }.
@@ -1,4 +1,4 @@
1
- import { getFullAgentContent, getFullSkillFiles, discoverPackageFiles, readPackageFile } from "./package-assets.js";
1
+ import { getFullAgentContent, getFullSkillFiles, discoverPackageFiles, readPackageFile, getPackageVersion } from "./package-assets.js";
2
2
 
3
3
  const COMMON_FILES = {
4
4
  "README.workflow.md": `# AI Workflow Setup\n\nThis project is configured for Codex and OpenCode workflows via \`ai-workflow\`.\n\n## Quick start\n\n1. Run validation command for your project.\n2. Start your AI workflow using repository prompts and agent commands.\n3. Keep changes small and evidence-based.\n`,
@@ -101,20 +101,20 @@ const FULL_PRIMARY_AGENTS = [
101
101
  "release-manager",
102
102
  "wordpress-engineer",
103
103
  "prompt-engineer",
104
+ "spec-engineer",
104
105
  "orchestrator"
105
106
  ];
106
107
 
107
108
  const FULL_SKILLS = [
108
109
  "backend-implementer",
109
110
  "build-and-validate",
110
- "codex-pr-workflow",
111
+ "pr-orchestrator",
111
112
  "deploy-engineer",
112
113
  "docs-writer",
113
114
  "frontend-implementer",
114
115
  "interface-design",
115
116
  "minimal-context",
116
117
  "napkin",
117
- "nuxt-dashboard-workflow",
118
118
  "opencode-agent-design",
119
119
  "playwright-cli",
120
120
  "product-manager",
@@ -123,10 +123,12 @@ const FULL_SKILLS = [
123
123
  "tech-lead",
124
124
  "tester",
125
125
  "token-economy",
126
- "vue-clean-architecture",
126
+ "vue-nuxt",
127
127
  "wordpress-engineer"
128
128
  ];
129
129
 
130
+ const KIT_VERSION = getPackageVersion() ?? "unknown";
131
+
130
132
  function buildFullFiles() {
131
133
  const files = {};
132
134
 
@@ -249,7 +251,7 @@ export function buildAiWorkflowConfig({ profile, managedFiles, managedLinks = []
249
251
  return {
250
252
  $schema: "./schemas/ai-workflow.schema.json",
251
253
  version: 2,
252
- kitVersion: "0.1.0",
254
+ kitVersion: KIT_VERSION,
253
255
  mode: "standalone",
254
256
  profile,
255
257
  installedAt: now,
@@ -35,14 +35,14 @@ Supporting skills:
35
35
  ```txt
36
36
  .agents/skills/tester/SKILL.md
37
37
  .agents/skills/build-and-validate/SKILL.md
38
- .agents/skills/codex-pr-workflow/SKILL.md
38
+ .agents/skills/pr-orchestrator/SKILL.md
39
39
  ```
40
40
 
41
41
  Use `tester` to check whether the plan is testable.
42
42
 
43
43
  Use `build-and-validate` to define realistic validation commands.
44
44
 
45
- Use `codex-pr-workflow` to split the work into safe pull requests.
45
+ Use `pr-orchestrator` to split the work into safe pull requests.
46
46
 
47
47
  ## Required input
48
48
 
@@ -27,7 +27,7 @@ Do not use this prompt to implement the PR directly.
27
27
  Use this prompt with:
28
28
 
29
29
  ```txt
30
- .agents/skills/codex-pr-workflow/SKILL.md
30
+ .agents/skills/pr-orchestrator/SKILL.md
31
31
  ```
32
32
 
33
33
  Supporting skills:
@@ -38,11 +38,11 @@ Common options:
38
38
  Supporting skills:
39
39
 
40
40
  ```txt
41
- .agents/skills/codex-pr-workflow/SKILL.md
41
+ .agents/skills/pr-orchestrator/SKILL.md
42
42
  .agents/skills/tester/SKILL.md
43
43
  ```
44
44
 
45
- Use `codex-pr-workflow` to keep the PR scoped.
45
+ Use `pr-orchestrator` to keep the PR scoped.
46
46
 
47
47
  Use `tester` to check whether the implementation satisfies the PR acceptance criteria.
48
48
 
@@ -34,14 +34,14 @@ Supporting skills:
34
34
 
35
35
  ```txt
36
36
  .agents/skills/build-and-validate/SKILL.md
37
- .agents/skills/codex-pr-workflow/SKILL.md
37
+ .agents/skills/pr-orchestrator/SKILL.md
38
38
  ```
39
39
 
40
40
  Use `tester` to verify correctness, regressions, edge cases, and acceptance criteria.
41
41
 
42
42
  Use `build-and-validate` to run or interpret validation commands.
43
43
 
44
- Use `codex-pr-workflow` to ensure fixes stay inside the selected PR scope.
44
+ Use `pr-orchestrator` to ensure fixes stay inside the selected PR scope.
45
45
 
46
46
  ## Required input
47
47
 
@@ -35,14 +35,14 @@ Supporting skills:
35
35
 
36
36
  ```txt
37
37
  .agents/skills/build-and-validate/SKILL.md
38
- .agents/skills/codex-pr-workflow/SKILL.md
38
+ .agents/skills/pr-orchestrator/SKILL.md
39
39
  .agents/skills/docs-writer/SKILL.md
40
40
  .agents/skills/deploy-engineer/SKILL.md
41
41
  ```
42
42
 
43
43
  Use `build-and-validate` for command execution and failure analysis.
44
44
 
45
- Use `codex-pr-workflow` to check PR scope and review readiness.
45
+ Use `pr-orchestrator` to check PR scope and review readiness.
46
46
 
47
47
  Use `docs-writer` when validating documentation, prompts, templates, or runbooks.
48
48
 
@@ -36,7 +36,7 @@ Supporting skills:
36
36
  ```txt
37
37
  .agents/skills/build-and-validate/SKILL.md
38
38
  .agents/skills/tester/SKILL.md
39
- .agents/skills/codex-pr-workflow/SKILL.md
39
+ .agents/skills/pr-orchestrator/SKILL.md
40
40
  .agents/skills/docs-writer/SKILL.md
41
41
  ```
42
42
 
@@ -44,7 +44,7 @@ Use `build-and-validate` to verify build, tests, artifacts, and command results.
44
44
 
45
45
  Use `tester` to verify acceptance criteria, smoke tests, and regression risks.
46
46
 
47
- Use `codex-pr-workflow` to confirm that the deployed scope matches the approved PR scope.
47
+ Use `pr-orchestrator` to confirm that the deployed scope matches the approved PR scope.
48
48
 
49
49
  Use `docs-writer` when deployment instructions, release notes, or runbooks need documentation.
50
50
 
@@ -184,7 +184,7 @@ Examples:
184
184
  | Nuxt Dashboard | `vue-nuxt`, `vue-nuxt`, `frontend-implementer`, `build-and-validate` |
185
185
  | WordPress | `wordpress-engineer`, `docs-writer`, `build-and-validate`, `tester` |
186
186
  | Testing automation | `tester`, `build-and-validate` |
187
- | Prompt/system work | `token-economy`, `opencode-agent-design`, `codex-pr-workflow`, `docs-writer` |
187
+ | Prompt/system work | `token-economy`, `opencode-agent-design`, `pr-orchestrator`, `docs-writer` |
188
188
  | Release flow | `deploy-engineer`, `build-and-validate` |
189
189
 
190
190
  Select one primary skill for the current task. Add supporting skills only when they improve the result.
@@ -0,0 +1,109 @@
1
+ # Branch Cleanup Runbook
2
+
3
+ ## Purpose
4
+
5
+ Keep local and remote branches clean after each merged PR.
6
+
7
+ This reduces confusion, avoids stale references, and keeps the repository focused on active work.
8
+
9
+ ## When to use
10
+
11
+ - After merging any PR.
12
+ - At the end of a feature/fix cycle.
13
+ - Before starting a new work item.
14
+
15
+ ## Prerequisites
16
+
17
+ - Your latest PR is already merged.
18
+ - You have no uncommitted local changes.
19
+
20
+ Check:
21
+
22
+ ```bash
23
+ git status -sb
24
+ ```
25
+
26
+ ## Standard cleanup workflow
27
+
28
+ 1) Switch to main and sync:
29
+
30
+ ```bash
31
+ git switch main
32
+ git pull origin main
33
+ ```
34
+
35
+ 1) Delete merged local work branch:
36
+
37
+ ```bash
38
+ git branch -d <type>/<short-slug>
39
+ ```
40
+
41
+ 1) Delete remote work branch:
42
+
43
+ ```bash
44
+ git push origin --delete <type>/<short-slug>
45
+ ```
46
+
47
+ 1) Prune stale remote references:
48
+
49
+ ```bash
50
+ git fetch -p origin
51
+ ```
52
+
53
+ 1) Confirm final branch state:
54
+
55
+ ```bash
56
+ git branch -a
57
+ ```
58
+
59
+ Expected result:
60
+
61
+ - Local: only `main` (or only currently active work branch + `main`)
62
+ - Remote: only active branches that still matter
63
+
64
+ ## Optional one-line cleanup (local only)
65
+
66
+ Delete all local branches except `main`:
67
+
68
+ ```bash
69
+ git for-each-ref --format='%(refname:short)' refs/heads | while read b; do if [ "$b" != "main" ]; then git branch -D "$b"; fi; done
70
+ ```
71
+
72
+ Use with care: this force-deletes local branches.
73
+
74
+ ## Safety rules
75
+
76
+ - Do not delete `main`.
77
+ - Do not delete branches with unmerged work unless explicitly approved.
78
+ - Prefer `git branch -d` (safe) before `-D` (force).
79
+
80
+ ## Troubleshooting
81
+
82
+ ### "remote ref does not exist"
83
+
84
+ Cause: the remote branch was already deleted.
85
+
86
+ Action:
87
+
88
+ ```bash
89
+ git fetch -p origin
90
+ ```
91
+
92
+ ### Branch still appears after deletion
93
+
94
+ Cause: stale local remote-tracking reference.
95
+
96
+ Action:
97
+
98
+ ```bash
99
+ git fetch -p origin
100
+ git branch -a
101
+ ```
102
+
103
+ ## Compliance checklist
104
+
105
+ - [ ] PR merged
106
+ - [ ] Local work branch deleted
107
+ - [ ] Remote work branch deleted
108
+ - [ ] Stale refs pruned
109
+ - [ ] `git branch -a` verified
@@ -33,7 +33,7 @@ Supporting skills:
33
33
  ```txt
34
34
  .agents/skills/build-and-validate/SKILL.md
35
35
  .agents/skills/tester/SKILL.md
36
- .agents/skills/codex-pr-workflow/SKILL.md
36
+ .agents/skills/pr-orchestrator/SKILL.md
37
37
  .agents/skills/docs-writer/SKILL.md
38
38
  ```
39
39
 
@@ -28,7 +28,7 @@ Use this runbook when:
28
28
  │ └── SKILL.md
29
29
  ├── build-and-validate/
30
30
  │ └── SKILL.md
31
- ├── codex-pr-workflow/
31
+ ├── pr-orchestrator/
32
32
  │ └── SKILL.md
33
33
  ├── deploy-engineer/
34
34
  │ └── SKILL.md
@@ -60,9 +60,9 @@ Use this as the default auto-load map for daily work.
60
60
 
61
61
  | Agent role | Auto-loaded primary skills | Contextual skills |
62
62
  | ---------- | -------------------------- | ----------------- |
63
- | `planner` | `product-manager`, `tech-lead`, `codex-pr-workflow` | `napkin` when decisions should be preserved across sprints |
64
- | `implementer` | `codex-pr-workflow`, `tester`, plus one implementer skill (`frontend-implementer` or `backend-implementer`) | `interface-design` for UI/UX refinement tasks |
65
- | `reviewer` | `tester`, `codex-pr-workflow` | `interface-design` when reviewing design/system consistency |
63
+ | `planner` | `product-manager`, `tech-lead`, `pr-orchestrator` | `napkin` when decisions should be preserved across sprints |
64
+ | `implementer` | `pr-orchestrator`, `tester`, plus one implementer skill (`frontend-implementer` or `backend-implementer`) | `interface-design` for UI/UX refinement tasks |
65
+ | `reviewer` | `tester`, `pr-orchestrator` | `interface-design` when reviewing design/system consistency |
66
66
  | `validator` | `build-and-validate`, `tester` | `deploy-engineer` for deploy-readiness checks |
67
67
  | `release-manager` | `deploy-engineer` | `napkin` when release lessons should be persisted |
68
68
 
@@ -84,12 +84,12 @@ Policy:
84
84
  | Review a functional spec | `tester` | `product-manager` |
85
85
  | Create a technical plan | `tech-lead` | `build-and-validate`, `tester` |
86
86
  | Review a technical plan | `tech-lead` | `tester` |
87
- | Break work into PRs | `codex-pr-workflow` | `tech-lead`, `tester` |
88
- | Implement frontend work | `frontend-implementer` | `codex-pr-workflow`, `tester` |
89
- | Implement backend work | `backend-implementer` | `codex-pr-workflow`, `tester` |
87
+ | Break work into PRs | `pr-orchestrator` | `tech-lead`, `tester` |
88
+ | Implement frontend work | `frontend-implementer` | `pr-orchestrator`, `tester` |
89
+ | Implement backend work | `backend-implementer` | `pr-orchestrator`, `tester` |
90
90
  | Write or update documentation | `docs-writer` | `tester` |
91
91
  | Validate build/test commands | `build-and-validate` | `tester` |
92
- | Review implemented PR | `tester` | `build-and-validate`, `codex-pr-workflow` |
92
+ | Review implemented PR | `tester` | `build-and-validate`, `pr-orchestrator` |
93
93
  | Fix validation failures | `build-and-validate` | `tester`, relevant implementer |
94
94
  | Apply UI/design improvements | `frontend-implementer` | `tester`, `docs-writer` |
95
95
  | Audit SEO/AEO/GEO visibility | `seo-audit` | `tester`, `docs-writer` |
@@ -133,7 +133,7 @@ Best for:
133
133
 
134
134
  Do not use as the primary skill for writing all code unless explicitly requested.
135
135
 
136
- ### `codex-pr-workflow`
136
+ ### `pr-orchestrator`
137
137
 
138
138
  Use for PR discipline.
139
139
 
@@ -341,7 +341,7 @@ Use:
341
341
 
342
342
  ```txt
343
343
  prompts/04-breakdown-prs.md
344
- .agents/skills/codex-pr-workflow/SKILL.md
344
+ .agents/skills/pr-orchestrator/SKILL.md
345
345
  ```
346
346
 
347
347
  Supporting skills:
@@ -382,7 +382,7 @@ Choose one primary implementer:
382
382
  Supporting skills:
383
383
 
384
384
  ```txt
385
- .agents/skills/codex-pr-workflow/SKILL.md
385
+ .agents/skills/pr-orchestrator/SKILL.md
386
386
  .agents/skills/tester/SKILL.md
387
387
  ```
388
388
 
@@ -408,7 +408,7 @@ Supporting skills:
408
408
 
409
409
  ```txt
410
410
  .agents/skills/build-and-validate/SKILL.md
411
- .agents/skills/codex-pr-workflow/SKILL.md
411
+ .agents/skills/pr-orchestrator/SKILL.md
412
412
  ```
413
413
 
414
414
  Goal:
@@ -500,7 +500,7 @@ Skill chaining means using multiple skills in sequence, not all at once.
500
500
  Good sequence:
501
501
 
502
502
  ```txt
503
- product-manager → tester → tech-lead → codex-pr-workflow → implementer → tester → build-and-validate
503
+ product-manager → tester → tech-lead → pr-orchestrator → implementer → tester → build-and-validate
504
504
  ```
505
505
 
506
506
  Bad sequence:
@@ -574,7 +574,7 @@ frontend-implementer
574
574
  Supporting:
575
575
 
576
576
  ```txt
577
- codex-pr-workflow
577
+ pr-orchestrator
578
578
  tester
579
579
  ```
580
580
 
@@ -596,7 +596,7 @@ Is the expected behavior defined but the technical path unclear?
596
596
  └── Use tech-lead.
597
597
 
598
598
  Is the work too large or needs PR planning?
599
- └── Use codex-pr-workflow.
599
+ └── Use pr-orchestrator.
600
600
 
601
601
  Is the task frontend implementation?
602
602
  └── Use frontend-implementer.
@@ -637,7 +637,7 @@ Risk:
637
637
  Better:
638
638
 
639
639
  ```md
640
- Use `prompts/04-breakdown-prs.md` with `codex-pr-workflow` to split this feature into safe PRs.
640
+ Use `prompts/04-breakdown-prs.md` with `pr-orchestrator` to split this feature into safe PRs.
641
641
  ```
642
642
 
643
643
  ### Implementation before requirement
@@ -16,14 +16,20 @@ Use this checklist before making the GitHub repository public or before a major
16
16
  - [ ] GitHub-only folders (`evidence/`, `examples/`, `variants/`, `scripts/`, `tests/`) are appropriate for public readers.
17
17
  - [ ] CI and publish workflows reference secrets through GitHub Actions secrets only.
18
18
  - [ ] `npm run validate` passes.
19
+ - [ ] Local source archives are created with safe commands (`git archive`), not ad-hoc workspace zips.
20
+ - [ ] Local package inspection uses `npm pack --dry-run` and confirms no secrets or `.git/` content.
19
21
 
20
22
  ## Suggested verification commands
21
23
 
22
24
  ```bash
23
25
  npm run validate
26
+ npm pack --dry-run
27
+ git archive --format=zip --output ai-workflow-source.zip HEAD
24
28
  grep -R --exclude=publication-readiness-checklist.md "/home/" README.md docs runbooks evidence packages examples variants || true
25
29
  grep -R --exclude=publication-readiness-checklist.md "private preview\|private-preview\|not ready for broad public" README.md docs runbooks packages evidence || true
26
30
  grep -R --exclude=publication-readiness-checklist.md "arco-ptp" README.md docs runbooks packages evidence || true
27
31
  ```
28
32
 
29
33
  Review any matches before publication. Some historical references may be acceptable only when they are explicitly anonymized or explained.
34
+
35
+ Avoid manually zipping the working directory (`zip -r .`) for distribution, because it can accidentally include `.env*`, `.git/`, and other local-only files.
@@ -107,7 +107,7 @@ Each workflow step has a recommended prompt and specialist skill:
107
107
  | Create the requirement | `prompts/01-create-requirement.md` | `product-manager` |
108
108
  | Create the specification | `prompts/02-create-spec.md` | `product-manager` + `tester` |
109
109
  | Create the technical plan | `prompts/03-create-tech-plan.md` | `tech-lead` |
110
- | Break work into PRs | `prompts/04-breakdown-prs.md` | `codex-pr-workflow` |
110
+ | Break work into PRs | `prompts/04-breakdown-prs.md` | `pr-orchestrator` |
111
111
  | Implement PR 1 | `prompts/05-implement-pr.md` | Frontend/backend/docs/deploy implementer |
112
112
  | Review and fix | `prompts/06-review-and-fix.md` | `tester` |
113
113
  | Validate | `prompts/08-validate.md` | `tester` + `build-and-validate` |
@@ -182,7 +182,7 @@ Split a technical plan into small, reviewable, incremental pull requests that pr
182
182
 
183
183
  ### Key references
184
184
 
185
- - `.agents/skills/codex-pr-workflow/SKILL.md`
185
+ - `.agents/skills/pr-orchestrator/SKILL.md`
186
186
  - `schemas/pr-breakdown.schema.json`
187
187
  - `harness/workflows/requirement-to-pr.md`
188
188
 
@@ -240,7 +240,7 @@ Review an implemented PR for correctness, scope compliance, regression risk, and
240
240
  ### Key references
241
241
 
242
242
  - `.agents/skills/tester/SKILL.md`
243
- - `.agents/skills/codex-pr-workflow/SKILL.md`
243
+ - `.agents/skills/pr-orchestrator/SKILL.md`
244
244
  - `AGENTS.md` (severity model, finding types)
245
245
 
246
246
  ---
@@ -373,9 +373,9 @@ Adapt the generic workflow to a specific technology stack using the variants sys
373
373
  | Requirement | `product-manager` | `docs-writer`, `tester` |
374
374
  | Specification | `product-manager` | `tester`, `docs-writer` |
375
375
  | Technical Plan | `tech-lead` | `build-and-validate`, `tester` |
376
- | PR Breakdown | `codex-pr-workflow` | `tech-lead`, `tester` |
377
- | Implementation | `frontend-implementer` or `backend-implementer` | `codex-pr-workflow`, `tester` |
378
- | Review | `tester` | `build-and-validate`, `codex-pr-workflow` |
376
+ | PR Breakdown | `pr-orchestrator` | `tech-lead`, `tester` |
377
+ | Implementation | `frontend-implementer` or `backend-implementer` | `pr-orchestrator`, `tester` |
378
+ | Review | `tester` | `build-and-validate`, `pr-orchestrator` |
379
379
  | Validation | `tester` | `build-and-validate` |
380
380
  | Deployment | `deploy-engineer` | `build-and-validate`, `tester` |
381
381
 
@@ -33,7 +33,7 @@ Supporting skills:
33
33
 
34
34
  ```txt
35
35
  .agents/skills/build-and-validate/SKILL.md
36
- .agents/skills/codex-pr-workflow/SKILL.md
36
+ .agents/skills/pr-orchestrator/SKILL.md
37
37
  .agents/skills/docs-writer/SKILL.md
38
38
  .agents/skills/deploy-engineer/SKILL.md
39
39
  ```
@@ -42,7 +42,7 @@ Use the relevant skill depending on the task.
42
42
  ```txt
43
43
  .agents/skills/product-manager/SKILL.md
44
44
  .agents/skills/tech-lead/SKILL.md
45
- .agents/skills/codex-pr-workflow/SKILL.md
45
+ .agents/skills/pr-orchestrator/SKILL.md
46
46
  .agents/skills/frontend-implementer/SKILL.md
47
47
  .agents/skills/backend-implementer/SKILL.md
48
48
  .agents/skills/tester/SKILL.md
@@ -55,7 +55,7 @@ Use the relevant skill depending on the task.
55
55
 
56
56
  - Use `product-manager` to clarify requirements, scope, users, outcomes, and acceptance criteria.
57
57
  - Use `tech-lead` to create technical plans, identify architecture boundaries, risks, and trade-offs.
58
- - Use `codex-pr-workflow` to plan, scope, summarize, and review pull requests.
58
+ - Use `pr-orchestrator` to plan, scope, summarize, and review pull requests.
59
59
  - Use `frontend-implementer` for UI, component, state, routing, styling, accessibility, and frontend API integration work.
60
60
  - Use `backend-implementer` for APIs, services, repositories, persistence, validation, authentication, authorization, and backend integrations.
61
61
  - Use `tester` for acceptance criteria validation, regression review, edge cases, and final approval checks.