create-zudo-doc 5.8.0 → 5.9.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.
package/README.md CHANGED
@@ -73,7 +73,8 @@ Each feature has a `--[no-]<flag>` form. Passing `--feature` enables it; `--no-f
73
73
  | `--[no-]sidebar-filter` | Real-time sidebar filter | on |
74
74
  | `--[no-]image-enlarge` | Click-to-enlarge for oversized images | on |
75
75
  | `--[no-]tag-governance` | Vocabulary-aware tag audit + suggest scripts | off |
76
- | `--[no-]claude-resources` | Auto-generate Claude Code docs (`CLAUDE.md`, `llms.txt`) | off |
76
+ | `--[no-]claude-resources` | Auto-generate Claude Code docs from `.claude/` | off |
77
+ | `--[no-]codex-resources` | Auto-generate Codex docs from `.codex/` + `AGENTS.md` | off |
77
78
  | `--[no-]claude-skills` | Ship zudo-doc Claude Code skills (design-system, translate, version-bump) | off |
78
79
  | `--[no-]design-token-panel` | Interactive panel for tweaking spacing, font, color tokens | off |
79
80
  | `--[no-]sidebar-resizer` | Draggable sidebar width handle | off |
@@ -127,6 +127,7 @@ export function generateCLAUDEFile(choices) {
127
127
  docHistory: "Document edit history",
128
128
  llmsTxt: "Generates llms.txt for LLM consumption",
129
129
  claudeResources: "Auto-generated docs for Claude Code resources",
130
+ codexResources: "Auto-generated docs for Codex resources (.codex/, AGENTS.md)",
130
131
  changelog: "Changelog page at `/docs/changelog`",
131
132
  tauri: "Desktop app wrapper (`cargo tauri dev` / `cargo tauri build`) — Cmd/Ctrl+F find bar via the package-owned `FindInPageInit` island (`findInPage: true` in `zfb.config.ts`)",
132
133
  tagGovernance: "Vocabulary-aware tag audit (`tags:audit`) / suggest (`tags:suggest`) scripts",
package/dist/cli.d.ts CHANGED
@@ -17,6 +17,7 @@ export interface CliArgs {
17
17
  sidebarToggle?: boolean;
18
18
  versioning?: boolean;
19
19
  claudeResources?: boolean;
20
+ codexResources?: boolean;
20
21
  claudeSkills?: boolean;
21
22
  claudeSkillsWriting?: boolean;
22
23
  docHistory?: boolean;
package/dist/constants.js CHANGED
@@ -212,6 +212,13 @@ export const FEATURES = [
212
212
  default: false,
213
213
  cliFlag: "claude-resources",
214
214
  },
215
+ {
216
+ value: "codexResources",
217
+ label: "Codex Resources",
218
+ hint: "Auto-generate Codex docs (.codex/, AGENTS.md)",
219
+ default: false,
220
+ cliFlag: "codex-resources",
221
+ },
215
222
  {
216
223
  value: "claudeSkills",
217
224
  label: "Claude skills (user-facing)",
@@ -0,0 +1,11 @@
1
+ import type { FeatureModule } from "../compose.js";
2
+ /**
3
+ * Codex-resources feature.
4
+ *
5
+ * Fully plugin-owned (`@takazudo/zudo-doc/plugins/codex-resources`,
6
+ * `zudoDocPreset()` wires it whenever `settings.codexResources` is
7
+ * truthy). Generation is package-owned. This feature's touch points are now
8
+ * just: `codexResources` + `defaultLocaleOnlyPrefixes` fields
9
+ * (`zfb-config-gen.ts`).
10
+ */
11
+ export declare const codexResourcesFeature: FeatureModule;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Codex-resources feature.
3
+ *
4
+ * Fully plugin-owned (`@takazudo/zudo-doc/plugins/codex-resources`,
5
+ * `zudoDocPreset()` wires it whenever `settings.codexResources` is
6
+ * truthy). Generation is package-owned. This feature's touch points are now
7
+ * just: `codexResources` + `defaultLocaleOnlyPrefixes` fields
8
+ * (`zfb-config-gen.ts`).
9
+ */
10
+ export const codexResourcesFeature = () => ({
11
+ name: "codexResources",
12
+ injections: [],
13
+ });
@@ -14,6 +14,7 @@ import { tocToggleFeature } from "./toc-toggle.js";
14
14
  import { docHistoryFeature } from "./doc-history.js";
15
15
  import { llmsTxtFeature } from "./llms-txt.js";
16
16
  import { claudeResourcesFeature } from "./claude-resources.js";
17
+ import { codexResourcesFeature } from "./codex-resources.js";
17
18
  import { designTokenPanelFeature } from "./design-token-panel.js";
18
19
  import { themePackSwitcherFeature } from "./theme-pack-switcher.js";
19
20
  import { i18nFeature } from "./i18n.js";
@@ -36,6 +37,7 @@ export const featureModules = {
36
37
  search: searchFeature,
37
38
  // sidebarFilter — built into sidebar-tree.tsx, stays in base
38
39
  claudeResources: claudeResourcesFeature,
40
+ codexResources: codexResourcesFeature,
39
41
  designTokenPanel: designTokenPanelFeature,
40
42
  themePackSwitcher: themePackSwitcherFeature,
41
43
  sidebarResizer: sidebarResizerFeature,
@@ -32,5 +32,5 @@ export declare function deriveDocSkillName(projectName: string): string;
32
32
  *
33
33
  * Bumped in lockstep by scripts/release-create-zudo-doc.sh.
34
34
  */
35
- export declare const ZUDO_DOC_PIN = "^5.8.0";
35
+ export declare const ZUDO_DOC_PIN = "^5.9.0";
36
36
  export declare function scaffold(choices: UserChoices): Promise<void>;
package/dist/scaffold.js CHANGED
@@ -43,7 +43,7 @@ export function deriveDocSkillName(projectName) {
43
43
  *
44
44
  * Bumped in lockstep by scripts/release-create-zudo-doc.sh.
45
45
  */
46
- export const ZUDO_DOC_PIN = "^5.8.0";
46
+ export const ZUDO_DOC_PIN = "^5.9.0";
47
47
  /**
48
48
  * Files in `templates/base/**` that must not be copied by the unconditional
49
49
  * base mirror. Each entry is matched against the path relative to
@@ -748,7 +748,7 @@ function generatePackageJson(choices) {
748
748
  // `/exclude` at module scope from the always-bundled chrome graph; #3110
749
749
  // moved compileExclude into @takazudo/zudo-doc, so docHistory-OFF projects
750
750
  // no longer need the package at all.
751
- deps["@takazudo/zudo-doc-history-server"] = "^5.8.0";
751
+ deps["@takazudo/zudo-doc-history-server"] = "^5.9.0";
752
752
  // tsx is no longer needed here: the relocated package plugin imports the
753
753
  // runner directly (no `tsx -e` spawn) since the package ships compiled
754
754
  // dist/ — package-first migration #2321 (#2337).
@@ -65,6 +65,7 @@ export const DEFAULT_MIRROR = {
65
65
  bodyFootUtilArea: false,
66
66
  versions: false,
67
67
  claudeResources: false,
68
+ codexResources: false,
68
69
  defaultLocaleOnlyPrefixes: [],
69
70
  footer: false,
70
71
  headerNav: [],
@@ -239,19 +240,22 @@ function buildDesiredConfig(choices) {
239
240
  desired.bodyFootUtilArea = false;
240
241
  }
241
242
  desired.versions = choices.features.includes("versioning") ? [] : false;
243
+ const defaultLocaleOnlyPrefixes = [];
242
244
  if (choices.features.includes("claudeResources")) {
243
245
  desired.claudeResources = { claudeDir: ".claude" };
244
- desired.defaultLocaleOnlyPrefixes = [
245
- "/docs/claude-md/",
246
- "/docs/claude-skills/",
247
- "/docs/claude-agents/",
248
- "/docs/claude-commands/",
249
- ];
246
+ defaultLocaleOnlyPrefixes.push("/docs/claude-md/", "/docs/claude-skills/", "/docs/claude-agents/", "/docs/claude-commands/");
250
247
  }
251
248
  else {
252
249
  desired.claudeResources = false;
253
- desired.defaultLocaleOnlyPrefixes = [];
254
250
  }
251
+ if (choices.features.includes("codexResources")) {
252
+ desired.codexResources = { codexDir: ".codex" };
253
+ defaultLocaleOnlyPrefixes.push("/docs/codex-agents-md/", "/docs/codex-config/", "/docs/codex-agents/", "/docs/codex-hooks/", "/docs/codex-rules/", "/docs/codex-skills/");
254
+ }
255
+ else {
256
+ desired.codexResources = false;
257
+ }
258
+ desired.defaultLocaleOnlyPrefixes = defaultLocaleOnlyPrefixes;
255
259
  // ── Footer ────────────────────────────────────────────────────────────
256
260
  if (choices.features.includes("footerNavGroup") ||
257
261
  choices.features.includes("footerCopyright") ||
@@ -297,6 +301,13 @@ function buildDesiredConfig(choices) {
297
301
  categoryMatch: "claude",
298
302
  });
299
303
  }
304
+ if (choices.features.includes("codexResources")) {
305
+ headerNav.push({
306
+ label: "Codex",
307
+ path: "/docs/codex",
308
+ categoryMatch: "codex",
309
+ });
310
+ }
300
311
  if (choices.features.includes("changelog")) {
301
312
  headerNav.push({
302
313
  label: "Changelog",
@@ -368,6 +379,7 @@ const FIELD_ORDER = [
368
379
  "bodyFootUtilArea",
369
380
  "versions",
370
381
  "claudeResources",
382
+ "codexResources",
371
383
  "defaultLocaleOnlyPrefixes",
372
384
  "footer",
373
385
  "headerNav",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-zudo-doc",
3
- "version": "5.8.0",
3
+ "version": "5.9.0",
4
4
  "description": "Create a new zudo-doc documentation site",
5
5
  "license": "MIT",
6
6
  "author": "Takeshi Takatsudo",
@@ -210,7 +210,7 @@ Check `zfb.config.ts`: if the `zudoDoc({...})` call sets a non-empty `locales` f
210
210
  Two carve-outs — do NOT create secondary-locale mirrors for these:
211
211
 
212
212
  - Pages with `generated: true` in frontmatter (build-generated content).
213
- - Paths listed in the `defaultLocaleOnlyPrefixes` setting in `zfb.config.ts` — default-locale-only by design (the Claude Resources feature, when enabled, registers its four `/docs/claude-*` prefixes there).
213
+ - Paths listed in the `defaultLocaleOnlyPrefixes` setting in `zfb.config.ts` — default-locale-only by design (the Claude Resources and Codex Resources features, when enabled, register four `/docs/claude-*` prefixes and six `/docs/codex-*` prefixes there; their top-level `/docs/claude/` and `/docs/codex/` indexes remain bilingual).
214
214
 
215
215
  ## Common Mistakes (Do Not Do)
216
216