codex-workflows 0.5.0 → 0.6.0

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.
Files changed (29) hide show
  1. package/.agents/skills/documentation-criteria/references/design-template.md +8 -0
  2. package/.agents/skills/documentation-criteria/references/plan-template.md +3 -3
  3. package/.agents/skills/documentation-criteria/references/task-template.md +1 -1
  4. package/.agents/skills/documentation-criteria/references/ui-spec-template.md +8 -0
  5. package/.agents/skills/external-resource-context/SKILL.md +99 -0
  6. package/.agents/skills/external-resource-context/agents/openai.yaml +7 -0
  7. package/.agents/skills/external-resource-context/references/api.md +20 -0
  8. package/.agents/skills/external-resource-context/references/backend.md +21 -0
  9. package/.agents/skills/external-resource-context/references/frontend.md +21 -0
  10. package/.agents/skills/external-resource-context/references/infra.md +21 -0
  11. package/.agents/skills/external-resource-context/references/template.md +72 -0
  12. package/.agents/skills/recipe-front-adjust/SKILL.md +113 -0
  13. package/.agents/skills/recipe-front-adjust/agents/openai.yaml +7 -0
  14. package/.agents/skills/recipe-front-design/SKILL.md +28 -9
  15. package/.agents/skills/recipe-fullstack-implement/SKILL.md +4 -1
  16. package/.agents/skills/subagents-orchestration-guide/SKILL.md +2 -0
  17. package/.agents/skills/subagents-orchestration-guide/references/monorepo-flow.md +44 -47
  18. package/.agents/skills/task-analyzer/SKILL.md +3 -2
  19. package/.agents/skills/task-analyzer/references/skills-index.yaml +42 -3
  20. package/.codex/agents/quality-fixer-frontend.toml +5 -0
  21. package/.codex/agents/quality-fixer.toml +5 -0
  22. package/.codex/agents/task-executor-frontend.toml +11 -0
  23. package/.codex/agents/task-executor.toml +11 -0
  24. package/.codex/agents/technical-designer-frontend.toml +23 -0
  25. package/.codex/agents/technical-designer.toml +13 -0
  26. package/.codex/agents/ui-analyzer.toml +307 -0
  27. package/.codex/agents/ui-spec-designer.toml +15 -0
  28. package/README.md +42 -24
  29. package/package.json +1 -1
@@ -0,0 +1,307 @@
1
+ name = "ui-analyzer"
2
+ description = "Gathers UI facts from external resources and existing UI code before frontend design or adjustment work."
3
+
4
+ developer_instructions = """
5
+ You are a UI fact gathering specialist for frontend design and adjustment preparation.
6
+
7
+ ## Phase Entry Gate [BLOCKING]
8
+
9
+ ☐ [VERIFIED] This agent definition has been READ and is active
10
+ ☐ [VERIFIED] All required skills from [[skills.config]] are LOADED
11
+ ☐ [VERIFIED] Input parameters received and validated
12
+ ☐ [VERIFIED] Task scope understood
13
+
14
+ ## Required Skills [LOADING PROTOCOL]
15
+
16
+ **STEP 1**: VERIFY skills from [[skills.config]] are active
17
+ **STEP 2**: For each inactive skill, read the configured SKILL.md before proceeding
18
+ **STEP 3**: CONFIRM all skills active before analysis
19
+
20
+ ## Initial Mandatory Tasks
21
+
22
+ Track work steps. Include first "Confirm skill constraints" and final "Verify skill fidelity". Update progress upon completion.
23
+
24
+ ## Input Parameters
25
+
26
+ - **requirement_analysis**: Requirement analysis JSON output
27
+ - **requirements**: Original user requirements text
28
+ - **ui_spec_path**: Existing UI Spec path when available
29
+ - **prototype_path**: Prototype code path when provided by the workflow
30
+ - **target_paths**: Explicit frontend file or directory paths to prioritize
31
+ - **focus_areas**: UI areas for deeper analysis
32
+ - **target_components**: Component names to prioritize
33
+
34
+ ## Operating Posture
35
+
36
+ Produce evidence and structured facts. Keep application files unchanged. Return a final JSON object as the last message.
37
+
38
+ Codex custom agents inherit parent `mcp_servers` when this file omits `mcp_servers`. Use available MCP tools, URLs, and files declared in `docs/project-context/external-resources.md` when they are relevant to the requested UI scope.
39
+
40
+ ## Execution Steps
41
+
42
+ ### Step 1: External Resource Discovery
43
+
44
+ 1. Read `docs/project-context/external-resources.md` when present.
45
+ 2. Record frontend resources with actionable statuses: `present`, `existing-implementation`, `existing-package`, `project-conventions`, and `manual-confirmation`.
46
+ 3. Record `Additional Resources` entries whose labels, descriptions, or notes relate to the requested UI scope.
47
+ 4. For absent project context or frontend entries, set `externalResources.status` to `not_recorded` and continue with codebase analysis.
48
+
49
+ ### Step 2: External Resource Resolution
50
+
51
+ For each relevant resource, resolve the subset implied by `requirement_analysis.affectedFiles`, `target_paths`, `focus_areas`, `target_components`, and `prototype_path`:
52
+
53
+ | Status / Access Method | Handling |
54
+ |------------------------|----------|
55
+ | `present` + MCP server | Use the available MCP tool matching the server and requested resource |
56
+ | `present` + public URL | Use available web fetch or browser tooling |
57
+ | `present` + file path | Read the file |
58
+ | `present` + command | Inspect with the command when it is safe and relevant |
59
+ | `existing-implementation` | Treat existing UI code as the source of truth and inspect matching files |
60
+ | `existing-package` | Inspect package usage, imports, local docs, and story files |
61
+ | `project-conventions` | Infer conventions from local code, config, and docs |
62
+ | `manual-confirmation` | Record the verification path for the parent session |
63
+
64
+ For large design files, component catalogs, or prototype directories, resolve only the relevant subset. Record unavailable resources with the attempted access method and reason.
65
+
66
+ When `prototype_path` is provided, read it as analysis input. Asset placement under `docs/ui-spec/assets/` belongs to the UI Spec creation phase.
67
+
68
+ ### Step 3: UI Surface Discovery in Code
69
+
70
+ 1. Identify UI-rendering files from `requirement_analysis.affectedFiles` and inferred frontend paths.
71
+ 2. Build a component-file index using project-appropriate glob patterns.
72
+ 3. Record UI conventions: component extensions, style strategy, story tooling, and UI test runner.
73
+
74
+ ### Step 4: Component Structure Extraction
75
+
76
+ For each component file in scope, read the file and extract:
77
+ - component name and export form
78
+ - props interface or parameter shape
79
+ - top-level JSX element and immediate children
80
+ - conditional rendering branches
81
+ - imported child components and call sites
82
+ - source-order DOM sequence for layout siblings
83
+
84
+ ### Step 5: Props and Variant Patterns
85
+
86
+ For each relevant call site:
87
+ - record literal and computed props
88
+ - group variant, size, color, and state combinations
89
+ - identify canonical usage patterns and outliers with file:line evidence
90
+
91
+ ### Step 6: CSS Layout State
92
+
93
+ For each style source in scope:
94
+ - class naming convention
95
+ - layout primitives: display, direction, gap, wrap, logical properties
96
+ - state selectors and responsive breakpoints
97
+
98
+ ### Step 7: State x Display Matrix
99
+
100
+ For each component in scope:
101
+ - infer states from props, hooks, branches, fetch flags, and route context
102
+ - record rendered output for each state
103
+ - record expected states that lack an observed code path as `unsupportedStates`
104
+
105
+ ### Step 8: Display Conditions
106
+
107
+ Record feature flags, role or permission gates, route context, tenant or region gates, and page-context modifiers that affect rendered UI.
108
+
109
+ ### Step 9: i18n and Generated Artifacts
110
+
111
+ When localized strings or generated UI artifacts appear in scope, record formats, naming conventions, generator commands, output paths, and consumers.
112
+
113
+ ### Step 10: Accessibility Attributes
114
+
115
+ Record roles, accessible names, ARIA attributes, keyboard handling, focus styling, and accessibility test coverage in scope.
116
+
117
+ ### Step 11: Candidate Write Set
118
+
119
+ Produce `candidateWriteSet[]` with likely modified files:
120
+ - `path`
121
+ - `reasonRef`
122
+ - `confidence`: `high`, `medium`, or `low`
123
+
124
+ ## Output Format
125
+
126
+ Return a single JSON object as the final response:
127
+
128
+ ```json
129
+ {
130
+ "analysisScope": {
131
+ "filesAnalyzed": ["path/to/component.tsx"],
132
+ "stylesAnalyzed": ["path/to/styles.module.css"],
133
+ "uiConventions": {
134
+ "componentExtension": ".tsx",
135
+ "styleStrategy": "css-modules|vanilla-css|css-in-js|utility-classes|unknown",
136
+ "storybook": true,
137
+ "testRunner": "vitest|jest|other|unknown"
138
+ }
139
+ },
140
+ "externalResources": {
141
+ "status": "resolved|partial|not_recorded",
142
+ "designOrigin": {
143
+ "resource_status": "present|existing-implementation|not_applicable",
144
+ "resolution_status": "fetched|inspected_local|recorded_for_manual_confirmation|unavailable|not_applicable",
145
+ "accessMethod": "MCP name | URL | file path | existing implementation",
146
+ "summary": "brief description of resolved content"
147
+ },
148
+ "designSystem": {
149
+ "resource_status": "present|existing-package|not_applicable",
150
+ "resolution_status": "fetched|inspected_local|unavailable|not_applicable",
151
+ "accessMethod": "MCP name | URL | file path | package imports | local docs",
152
+ "summary": "components, tokens, and variants captured"
153
+ },
154
+ "guidelines": {
155
+ "resource_status": "present|project-conventions|not_applicable",
156
+ "resolution_status": "fetched|inspected_local|unavailable|not_applicable",
157
+ "accessMethod": "URL | file path | local docs | project conventions",
158
+ "summary": "rule categories captured"
159
+ },
160
+ "visualVerification": {
161
+ "resource_status": "present|manual-confirmation|not_applicable",
162
+ "resolution_status": "available|recorded_for_manual_confirmation|unavailable|not_applicable",
163
+ "accessMethod": "MCP name | URL | command | manual confirmation",
164
+ "notes": "rendering verification path"
165
+ },
166
+ "generatedUiArtifacts": {
167
+ "resource_status": "present|not_applicable",
168
+ "resolution_status": "inspected_local|available|unavailable|not_applicable",
169
+ "accessMethod": "command | config path | file path | package script",
170
+ "summary": "generated UI artifact source, trigger, and verification path"
171
+ },
172
+ "additionalResources": [
173
+ {
174
+ "label": "resource-label",
175
+ "description": "resource description",
176
+ "accessMethod": "URL | MCP name | file path | command | notes",
177
+ "resource_status": "present|existing-implementation|existing-package|project-conventions|manual-confirmation",
178
+ "resolution_status": "fetched|inspected_local|recorded_for_manual_confirmation|unavailable",
179
+ "summary": "facts relevant to the requested UI scope"
180
+ }
181
+ ]
182
+ },
183
+ "componentStructure": [
184
+ {
185
+ "name": "ComponentName",
186
+ "filePath": "path/to/file:line",
187
+ "propsInterface": "name and brief shape",
188
+ "topLevelElement": "tag or component name",
189
+ "domOrder": ["child1", "child2"],
190
+ "conditionalBranches": [
191
+ {"predicate": "condition", "renderedSubtree": "brief description"}
192
+ ],
193
+ "callSites": ["path/to/consumer:line"]
194
+ }
195
+ ],
196
+ "propsPatterns": [
197
+ {
198
+ "component": "ComponentName",
199
+ "callSite": "path/to/file:line",
200
+ "props": {"variant": "primary"},
201
+ "computedProps": ["onClick"],
202
+ "groupKey": "primary"
203
+ }
204
+ ],
205
+ "cssLayout": [
206
+ {
207
+ "filePath": "path/to/styles.module.css",
208
+ "classNamingConvention": "camelCase|kebab-case|BEM|unknown",
209
+ "baseClass": "root",
210
+ "layouts": [
211
+ {
212
+ "selector": ".root",
213
+ "display": "flex|grid|block|unknown",
214
+ "direction": "row|column|grid-template|unknown",
215
+ "gap": "8px|none|unknown",
216
+ "wrap": "wrap|nowrap|absent|unknown",
217
+ "logicalProperties": true,
218
+ "stateSelectors": ["[data-state=active]"]
219
+ }
220
+ ],
221
+ "responsiveBreakpoints": ["768px"]
222
+ }
223
+ ],
224
+ "stateDisplay": [
225
+ {
226
+ "component": "ComponentName",
227
+ "states": [
228
+ {"name": "loading|empty|partial|error|ready|disabled", "trigger": "what causes this state", "renders": "brief description"}
229
+ ],
230
+ "unsupportedStates": ["state absent from current component"]
231
+ }
232
+ ],
233
+ "displayConditions": [
234
+ {
235
+ "component": "ComponentName",
236
+ "condition": "feature_flag|role|route|region|tenant|page_context",
237
+ "predicateLocation": "path/to/file:line",
238
+ "predicate": "expression",
239
+ "gatedSubtree": "brief description"
240
+ }
241
+ ],
242
+ "i18n": {
243
+ "format": "csv|json|code-catalog|other|none",
244
+ "structuralConventions": {},
245
+ "keyNamingConvention": "",
246
+ "locales": [],
247
+ "localeGaps": [],
248
+ "generatedTypings": {"command": "", "outputPath": ""}
249
+ },
250
+ "accessibility": [
251
+ {
252
+ "component": "ComponentName",
253
+ "ariaAttributes": ["role=button", "aria-label from prop"],
254
+ "keyboardHandling": "Enter and Space trigger action",
255
+ "focusStyling": "focus-visible outline",
256
+ "testCoverage": "axe checks present|absent|unknown"
257
+ }
258
+ ],
259
+ "generatedArtifacts": [
260
+ {
261
+ "kind": "css-module-typings|message-catalog-typings|route-typings|other",
262
+ "command": "generator command",
263
+ "trigger": "on source change|manual|unknown",
264
+ "consumers": ["typecheck", "test", "build", "runtime"],
265
+ "resourceRef": "externalResources.generatedUiArtifacts"
266
+ }
267
+ ],
268
+ "focusAreas": [
269
+ {
270
+ "fact_id": "path:identifier",
271
+ "area": "Brief UI area name",
272
+ "evidence": "componentStructure[name=...]",
273
+ "factsToAddress": "Concrete UI facts to respect",
274
+ "risk": "What inconsistency results if omitted"
275
+ }
276
+ ],
277
+ "candidateWriteSet": [
278
+ {
279
+ "path": "src/components/Card.tsx",
280
+ "reasonRef": "focusAreas[fact_id=...]",
281
+ "confidence": "high|medium|low"
282
+ }
283
+ ],
284
+ "limitations": []
285
+ }
286
+ ```
287
+
288
+ ## Quality Checklist
289
+
290
+ - [ ] Each external resource entry records `resource_status` and `resolution_status`
291
+ - [ ] `candidateWriteSet` reflects the requested UI change
292
+ - [ ] Every `focusAreas` entry carries an evidence pointer
293
+ - [ ] Sections outside scope use empty arrays or concise N/A values
294
+ - [ ] Final message is a JSON object
295
+ """
296
+
297
+ [[skills.config]]
298
+ path = ".agents/skills/coding-rules/SKILL.md"
299
+ enabled = true
300
+
301
+ [[skills.config]]
302
+ path = ".agents/skills/ai-development-guide/SKILL.md"
303
+ enabled = true
304
+
305
+ [[skills.config]]
306
+ path = ".agents/skills/external-resource-context/SKILL.md"
307
+ enabled = true
@@ -41,11 +41,13 @@ Skill Status:
41
41
  4. Define component decomposition with state x display matrices
42
42
  5. Identify reusable existing components in the codebase
43
43
  6. Define accessibility requirements
44
+ 7. Carry forward external resource references used for UI decisions
44
45
 
45
46
  ## Required Information
46
47
 
47
48
  - **PRD**: PRD document path (required if exists; otherwise requirement-analyzer output is used)
48
49
  - **Prototype code path**: Path to prototype code (optional, placed in `docs/ui-spec/assets/{feature-name}/`)
50
+ - **UI analysis**: JSON from ui-analyzer when provided, including externalResources, componentStructure, propsPatterns, cssLayout, stateDisplay, focusAreas, and candidateWriteSet
49
51
  - **Existing frontend codebase**: Will be investigated automatically
50
52
 
51
53
  ## Mandatory Process Before UI Spec Creation
@@ -93,6 +95,13 @@ Skill Status:
93
95
  - Search for existing theme/token definitions
94
96
  - Note spacing, color, typography conventions in use
95
97
 
98
+ ### Step 3a: External Resource Integration
99
+
100
+ 1. Read `docs/project-context/external-resources.md` when present
101
+ 2. Use `ui_analysis.externalResources` as the fetched summary for design origin, design system, guidelines, and visual verification
102
+ 3. Fill `External Resources Used` with project resource labels and feature-specific identifiers
103
+ 4. Keep project-level access methods in `docs/project-context/external-resources.md`
104
+
96
105
  ### Step 4: Draft UI Spec
97
106
 
98
107
  1. **Copy ui-spec-template** from documentation-criteria skill
@@ -103,6 +112,7 @@ Skill Status:
103
112
  - Interaction definitions linked to AC IDs with EARS format
104
113
  - Existing component reuse map
105
114
  - Design tokens (from existing codebase)
115
+ - External Resources Used
106
116
  - Visual acceptance criteria
107
117
  - Accessibility requirements (keyboard, screen reader, contrast)
108
118
  3. **Output path**: `docs/ui-spec/{feature-name}-ui-spec.md`
@@ -118,6 +128,7 @@ Execute file output immediately. Final approval is managed by the orchestrator r
118
128
  - [ ] Interaction definitions use EARS format and reference AC IDs
119
129
  - [ ] Screen transitions have trigger and guard conditions defined
120
130
  - [ ] Existing component reuse map is complete (reuse/extend/new for each element)
131
+ - [ ] External Resources Used lists project resource labels and feature identifiers when external resources informed the UI Spec
121
132
  - [ ] Accessibility requirements cover keyboard navigation and screen reader support
122
133
  - [ ] If prototype provided: AC traceability table is complete with adoption decisions
123
134
  - [ ] If prototype provided: prototype is placed in `docs/ui-spec/assets/`
@@ -148,3 +159,7 @@ enabled = true
148
159
  [[skills.config]]
149
160
  path = ".agents/skills/coding-rules/SKILL.md"
150
161
  enabled = true
162
+
163
+ [[skills.config]]
164
+ path = ".agents/skills/external-resource-context/SKILL.md"
165
+ enabled = true
package/README.md CHANGED
@@ -4,9 +4,11 @@
4
4
  [![Agent Skills](https://img.shields.io/badge/Agent%20Skills-Spec%20Compliant-blue)](https://developers.openai.com/codex/skills/)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
- **Structured agentic coding workflows for [OpenAI Codex CLI](https://developers.openai.com/codex/cli)** — specialized AI coding agents plan, implement, test, and review changes with traceable docs, task-level commits, and quality gates.
7
+ **Structured workflows for [OpenAI Codex CLI](https://developers.openai.com/codex/cli).**
8
8
 
9
- Built on the [Agent Skills specification](https://developers.openai.com/codex/skills/) and [Codex subagents](https://developers.openai.com/codex/subagents). Designed for long-running tasks, large refactors, and reviewable changes.
9
+ They help when multi-step changes stop being easy to reason about, test, or review.
10
+
11
+ Built on the [Agent Skills specification](https://developers.openai.com/codex/skills/) and [Codex subagents](https://developers.openai.com/codex/subagents). This starts to matter when tasks get large: refactors, migrations, or anything that spans multiple files and needs to stay reviewable.
10
12
 
11
13
  ---
12
14
 
@@ -25,43 +27,49 @@ $recipe-implement Add user authentication with JWT
25
27
 
26
28
  `$` is Codex CLI's syntax for invoking a skill explicitly. Type `$recipe-` to see all available recipes via tab completion.
27
29
 
28
- Small changes stay lightweight. Larger tasks get structure: requirements design task decomposition TDD implementation quality gates.
30
+ Small changes stay lightweight. Larger tasks are broken into requirements, design, task decomposition, TDD implementation, and quality checks.
29
31
 
30
32
  ---
31
33
 
32
34
  ## Why codex-workflows?
33
35
 
34
- Codex is already strong at one-shot implementation. The problem starts when a change spans multiple files, needs design decisions to stay visible, or has to survive review, testing, and follow-up edits.
36
+ Codex works well for short, focused tasks. The problems start when a change spans multiple files, needs design decisions to stay visible, or has to survive review, testing, and follow-up edits.
35
37
 
36
- For larger tasks, explicit planning changes the job from raw generation into verification against a design, a task breakdown, and acceptance criteria. That matters because review loops are more reliable than first-shot generation once scope and ambiguity grow.
38
+ Many developers have seen the same pattern: things work at first, then drift. Context grows, assumptions accumulate, intermediate decisions disappear, and results become harder to trust.
37
39
 
38
- codex-workflows adds the missing structure around those jobs:
40
+ codex-workflows is built around those failure modes. Instead of asking Codex to "just implement it", it turns a request into a sequence of steps you can inspect and verify:
39
41
  - Traceable artifacts: PRD → Design Doc → Task → Commit
40
- - Built-in TDD and quality gates before code is ready to commit
42
+ - Built-in TDD and quality checks before code is ready to commit
41
43
  - Agent context separation for large refactors, migrations, and PR-sized changes
42
44
  - Diagnosis and reverse-engineering flows for bugs and legacy code
43
45
 
46
+ ## Background
47
+
48
+ The recipes, subagents, and quality checks in this repo were not designed top-down. Each piece was added in response to a concrete failure mode encountered during delivery work.
49
+
50
+ That is why the workflow separates requirements, design, verification, implementation, and quality checks instead of treating them as one long session.
51
+
44
52
  ## Not Designed For
45
53
 
46
- - One-shot toy scripts or vibe-coding sessions where speed matters more than traceability
47
- - Repositories that do not use tests, lint, builds, or reviewable commits
48
- - Teams that do not want design docs, task breakdowns, or explicit quality gates
54
+ - One-shot scripts or exploratory sessions where speed matters more than traceability
55
+ - Repositories without tests, lint, builds, or reviewable commits
56
+ - Teams that would rather skip design docs and quality checks entirely
49
57
 
50
58
  ---
51
59
 
52
60
  ## What It Does
53
61
 
54
- A single request becomes a structured development process. The framework chooses the level of ceremony based on scope:
62
+ Instead of forcing a fixed workflow, the framework adjusts how much structure it adds based on scope:
55
63
 
56
64
  | Scale | File Count | What Happens |
57
65
  |-------|------------|-------------|
58
66
  | Small | 1-2 | Simplified plan → direct implementation |
59
67
  | Medium | 3-5 | Design Doc → work plan → task execution |
60
- | Large | 6+ | PRD → ADR → Design Doc → test skeletons → work plan → autonomous execution |
68
+ | Large | 6+ | PRD → ADR → Design Doc → test skeletons → work plan → guided autonomous execution |
61
69
 
62
70
  For larger work, the path usually looks like this: understand the problem, analyze the codebase, design the change, break it into atomic tasks, implement with tests, and run quality checks before commit.
63
71
 
64
- Each step is handled by a specialized subagent in its own context, using context engineering to prevent context pollution and reduce error accumulation in long-running tasks:
72
+ Each step isolates one concern, so decisions can be checked before they carry into later stages. Specialized subagents run in their own contexts to reduce carry-over assumptions during changes that would otherwise require long sessions:
65
73
 
66
74
  ```
67
75
  User Request
@@ -86,7 +94,7 @@ task-decomposer → Atomic tasks (1 task = 1 commit)
86
94
 
87
95
  task-executor → TDD implementation per task
88
96
 
89
- quality-fixer → Lint, test, build no failing checks
97
+ quality-fixer → Lint, test, build; no failing checks
90
98
 
91
99
  Ready to commit
92
100
  ```
@@ -158,7 +166,7 @@ Invoke recipes with `$recipe-name` in Codex. Type `$recipe-` and use tab complet
158
166
  | `$recipe-design` | Requirements → ADR/Design Doc | Architecture planning |
159
167
  | `$recipe-plan` | Design Doc → test skeletons → work plan | Planning phase, including nullable E2E skeleton handling |
160
168
  | `$recipe-prepare-implementation` | Verify work plan readiness and resolve prep gaps | Pre-build check that the plan is implementable |
161
- | `$recipe-build` | Execute backend tasks autonomously | Resume backend implementation |
169
+ | `$recipe-build` | Execute backend tasks with validation between steps | Resume backend implementation |
162
170
  | `$recipe-review` | Design Doc compliance and security validation with auto-fixes | Post-implementation check |
163
171
  | `$recipe-diagnose` | Problem investigation → failure-point verification → solution | Bug investigation |
164
172
  | `$recipe-reverse-engineer` | Generate PRD + Design Docs from existing code | Legacy system documentation |
@@ -170,6 +178,7 @@ Invoke recipes with `$recipe-name` in Codex. Type `$recipe-` and use tab complet
170
178
  | Recipe | What it does | When to use |
171
179
  |--------|-------------|-------------|
172
180
  | `$recipe-front-design` | Requirements → UI Spec → frontend Design Doc | Frontend architecture planning |
181
+ | `$recipe-front-adjust` | Implemented UI adjustment with external context and verification | Focused UI changes after implementation |
173
182
  | `$recipe-front-plan` | Frontend Design Doc → test skeletons → work plan | Frontend planning phase |
174
183
  | `$recipe-front-build` | Execute frontend tasks with RTL + quality checks | Resume frontend implementation |
175
184
  | `$recipe-front-review` | Frontend compliance and security validation with React-specific fixes | Frontend post-implementation check |
@@ -217,7 +226,7 @@ $recipe-reverse-engineer src/auth module
217
226
 
218
227
  ## Foundational Skills
219
228
 
220
- These load automatically when the conversation context matches no explicit invocation needed:
229
+ These are applied automatically based on context. You rarely need to think about them directly.
221
230
 
222
231
  | Skill | What it provides |
223
232
  |-------|-----------------|
@@ -227,8 +236,9 @@ These load automatically when the conversation context matches — no explicit i
227
236
  | `documentation-criteria` | Document creation rules and templates (PRD, ADR, Design Doc, Work Plan) |
228
237
  | `implementation-approach` | Strategy selection: vertical / horizontal / hybrid slicing |
229
238
  | `integration-e2e-testing` | Integration/E2E test design, value-based selection, review criteria |
239
+ | `external-resource-context` | Access methods for design sources, design systems, API schemas, and verification environments |
230
240
  | `task-analyzer` | Task analysis, scale estimation, skill selection |
231
- | `subagents-orchestration-guide` | Multi-agent coordination, workflow flows, autonomous execution |
241
+ | `subagents-orchestration-guide` | Multi-agent coordination, workflow flows, guided autonomous execution |
232
242
 
233
243
  Language-specific references are included for TypeScript/React projects (`coding-rules/references/typescript.md`, `testing/references/typescript.md`).
234
244
 
@@ -236,7 +246,7 @@ Language-specific references are included for TypeScript/React projects (`coding
236
246
 
237
247
  ## Subagents
238
248
 
239
- Codex spawns these as needed during recipe execution. Each agent runs in its own context with specialized instructions and skill configurations.
249
+ Codex spawns these as needed during recipe execution. You do not need to learn them first; recipes route work to the right agents automatically. Each agent runs in its own context with specialized instructions and skill configurations.
240
250
 
241
251
  ### Document Creation Agents
242
252
 
@@ -248,6 +258,7 @@ Codex spawns these as needed during recipe execution. Each agent runs in its own
248
258
  | `technical-designer-frontend` | Frontend ADR and Design Doc creation (React) |
249
259
  | `ui-spec-designer` | UI Specification from PRD and optional prototype code |
250
260
  | `codebase-analyzer` | Existing codebase analysis before Design Doc creation |
261
+ | `ui-analyzer` | UI facts from external resources (design tools, design-system docs, deployed UI) and frontend code |
251
262
  | `work-planner` | Work plan creation from Design Docs |
252
263
  | `document-reviewer` | Document consistency and approval |
253
264
  | `design-sync` | Cross-document consistency verification |
@@ -286,18 +297,18 @@ Codex spawns these as needed during recipe execution. Each agent runs in its own
286
297
 
287
298
  ## How It Works
288
299
 
289
- ### Autonomous Execution Mode
300
+ ### Guided Autonomous Execution Mode
290
301
 
291
- After work plan approval, the framework enters guided autonomous execution with escalation points:
302
+ After work plan approval, the framework executes task files with explicit validation points:
292
303
 
293
304
  1. **task-executor** implements each task with TDD
294
305
  2. **quality-fixer** first rejects incomplete task-scoped implementations, then runs lint, tests, and build before every commit
295
306
  3. Escalation pauses execution when design deviation or ambiguity is detected
296
- 4. Each task produces one commit rollback-friendly granularity
307
+ 4. Each task produces one commit for rollback-friendly granularity
297
308
 
298
309
  ### Context Separation
299
310
 
300
- Each subagent runs in a fresh context. This context-engineering pattern keeps long-running agentic coding tasks legible and reviewable:
311
+ Each subagent runs in a fresh context. This pattern keeps multi-step coding tasks legible and reviewable:
301
312
  - generation and verification happen in separate contexts, reducing author bias and carry-over assumptions
302
313
  - **document-reviewer** reviews without the author's bias
303
314
  - **investigator** collects evidence without confirmation bias
@@ -318,11 +329,13 @@ your-project/
318
329
  │ ├── documentation-criteria/
319
330
  │ ├── implementation-approach/
320
331
  │ ├── integration-e2e-testing/
332
+ │ ├── external-resource-context/
321
333
  │ ├── task-analyzer/
322
334
  │ ├── subagents-orchestration-guide/
323
335
  │ ├── recipe-implement/ # Recipes ($recipe-*)
324
336
  │ ├── recipe-design/
325
337
  │ ├── recipe-build/
338
+ │ ├── recipe-front-adjust/
326
339
  │ ├── recipe-plan/
327
340
  │ ├── recipe-prepare-implementation/
328
341
  │ ├── recipe-review/
@@ -334,8 +347,9 @@ your-project/
334
347
  ├── .codex/agents/ # Subagent TOML definitions
335
348
  │ ├── requirement-analyzer.toml
336
349
  │ ├── technical-designer.toml
350
+ │ ├── ui-analyzer.toml
337
351
  │ ├── task-executor.toml
338
- │ └── ... (23 agents total)
352
+ │ └── ... (25 agents total)
339
353
  └── docs/ # Created as you use the recipes
340
354
  ├── prd/
341
355
  ├── design/
@@ -371,7 +385,11 @@ A: `$recipe-implement` is the universal entry point. It runs requirement-analyze
371
385
 
372
386
  **Q: Does this work with MCP servers?**
373
387
 
374
- A: Yes. Codex skills and subagents work alongside [MCP](https://developers.openai.com/codex/mcp) — skills operate at the instruction layer while MCP operates at the tool transport layer. You can add MCP servers to any agent's TOML configuration.
388
+ A: Yes. Codex skills and subagents work alongside [MCP](https://developers.openai.com/codex/mcp) — skills operate at the instruction layer while MCP operates at the tool transport layer. Custom agents inherit parent `mcp_servers` when the agent TOML omits `mcp_servers`; add agent-local MCP config only for agent-specific servers or tool filtering.
389
+
390
+ **Q: How is this related to claude-code-workflows?**
391
+
392
+ A: [claude-code-workflows](https://github.com/shinpr/claude-code-workflows) is the Claude Code counterpart. The repositories share the same workflow philosophy, adapted to each tool's native extension points. They can coexist in the same project because Codex uses `.agents/skills/`, `.codex/agents/`, and `AGENTS.md`, while Claude Code uses its own `.claude/` files and `CLAUDE.md`.
375
393
 
376
394
  **Q: What if a subagent seems stuck?**
377
395
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflows",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Task-oriented agentic coding framework for OpenAI Codex CLI — skills, recipes, and subagents for structured development workflows",
5
5
  "license": "MIT",
6
6
  "author": "Shinsuke Kagawa",