迁移art-bible到Codex原生skill
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "codex-game-studios",
|
"name": "codex-game-studios",
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"description": "A Codex plugin for game-production workflows, concept brainstorming, and engine setup.",
|
"description": "A Codex plugin for game-production workflows, concept brainstorming, art bible authoring, and engine setup.",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "wxm",
|
"name": "wxm",
|
||||||
"email": "18854896936@163.com",
|
"email": "18854896936@163.com",
|
||||||
@@ -16,6 +16,8 @@
|
|||||||
"studio-workflow",
|
"studio-workflow",
|
||||||
"brainstorm",
|
"brainstorm",
|
||||||
"setup-engine",
|
"setup-engine",
|
||||||
|
"art-bible",
|
||||||
|
"visual-design",
|
||||||
"game-engine",
|
"game-engine",
|
||||||
"gdd"
|
"gdd"
|
||||||
],
|
],
|
||||||
@@ -23,7 +25,7 @@
|
|||||||
"interface": {
|
"interface": {
|
||||||
"displayName": "Codex Game Studios",
|
"displayName": "Codex Game Studios",
|
||||||
"shortDescription": "Game-production workflows for Codex",
|
"shortDescription": "Game-production workflows for Codex",
|
||||||
"longDescription": "Codex Game Studios exposes plugin-native skills for guided game concept ideation, engine/version setup, technical preferences, and structured game design documentation.",
|
"longDescription": "Codex Game Studios exposes plugin-native skills for guided game concept ideation, art bible authoring, engine/version setup, technical preferences, and structured game design documentation.",
|
||||||
"developerName": "wxm",
|
"developerName": "wxm",
|
||||||
"category": "Coding",
|
"category": "Coding",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
@@ -36,6 +38,7 @@
|
|||||||
"termsOfServiceURL": "https://gitea.wuxianming.ac.cn/wxm/codex-game-studios",
|
"termsOfServiceURL": "https://gitea.wuxianming.ac.cn/wxm/codex-game-studios",
|
||||||
"defaultPrompt": [
|
"defaultPrompt": [
|
||||||
"Use $brainstorm to shape my game concept.",
|
"Use $brainstorm to shape my game concept.",
|
||||||
|
"Use $art-bible to create my game's art bible.",
|
||||||
"Use $setup-engine to configure my game engine."
|
"Use $setup-engine to configure my game engine."
|
||||||
],
|
],
|
||||||
"brandColor": "#0F766E",
|
"brandColor": "#0F766E",
|
||||||
|
|||||||
@@ -9,15 +9,17 @@ skills expose the runtime workflows directly. Do not use a global
|
|||||||
|
|
||||||
- Skills:
|
- Skills:
|
||||||
- `$brainstorm` guides game concept ideation into `design/gdd/game-concept.md`.
|
- `$brainstorm` guides game concept ideation into `design/gdd/game-concept.md`.
|
||||||
|
- `$art-bible` creates and maintains `design/art/art-bible.md` from the game concept's visual identity.
|
||||||
- `$setup-engine` configures engine/version, technical preferences, engine reference docs, and specialist routing.
|
- `$setup-engine` configures engine/version, technical preferences, engine reference docs, and specialist routing.
|
||||||
- Runtime agents for Codex subagent workflows:
|
- Runtime agents for Codex subagent workflows:
|
||||||
- Director agents: `creative-director`, `art-director`, `technical-director`, `producer`
|
- Director agents: `creative-director`, `art-director`, `technical-director`, `producer`
|
||||||
|
- Art/UX support: `technical-artist`, `ux-designer`
|
||||||
- Godot specialists: `godot-specialist`, `godot-gdscript-specialist`, `godot-csharp-specialist`, `godot-shader-specialist`, `godot-gdextension-specialist`
|
- Godot specialists: `godot-specialist`, `godot-gdscript-specialist`, `godot-csharp-specialist`, `godot-shader-specialist`, `godot-gdextension-specialist`
|
||||||
- Unity specialists: `unity-specialist`, `unity-dots-specialist`, `unity-shader-specialist`, `unity-addressables-specialist`, `unity-ui-specialist`
|
- Unity specialists: `unity-specialist`, `unity-dots-specialist`, `unity-shader-specialist`, `unity-addressables-specialist`, `unity-ui-specialist`
|
||||||
- Unreal specialists: `unreal-specialist`, `ue-blueprint-specialist`, `ue-gas-specialist`, `ue-replication-specialist`, `ue-umg-specialist`
|
- Unreal specialists: `unreal-specialist`, `ue-blueprint-specialist`, `ue-gas-specialist`, `ue-replication-specialist`, `ue-umg-specialist`
|
||||||
- Runtime source: `runtime/agents/`
|
- Runtime source: `runtime/agents/`
|
||||||
- Project guide template: `project-template/AGENTS.md`
|
- Project guide template: `project-template/AGENTS.md`
|
||||||
- References: `references/studio-docs/director-gates.md`, `references/studio-docs/templates/game-concept.md`, `references/studio-docs/templates/game-pillars.md`, `references/studio-docs/templates/technical-preferences.md`, `references/engine-reference/`
|
- References: `references/studio-docs/director-gates.md`, `references/studio-docs/templates/game-concept.md`, `references/studio-docs/templates/game-pillars.md`, `references/studio-docs/templates/art-bible.md`, `references/studio-docs/templates/technical-preferences.md`, `references/engine-reference/`
|
||||||
- Standards: `standards/design-docs.md`
|
- Standards: `standards/design-docs.md`
|
||||||
- Marketplace: `.agents/plugins/marketplace.json`
|
- Marketplace: `.agents/plugins/marketplace.json`
|
||||||
- No hooks, rules, MCP servers, or app integrations yet
|
- No hooks, rules, MCP servers, or app integrations yet
|
||||||
@@ -26,6 +28,10 @@ skills expose the runtime workflows directly. Do not use a global
|
|||||||
engine version, writes the Technology Stack section in `AGENTS.md`, creates
|
engine version, writes the Technology Stack section in `AGENTS.md`, creates
|
||||||
`docs/technical-preferences.md`, and seeds `docs/engine-reference/<engine>/`.
|
`docs/technical-preferences.md`, and seeds `docs/engine-reference/<engine>/`.
|
||||||
|
|
||||||
|
`$art-bible` is the next visual step after `$brainstorm`: it uses the concept's
|
||||||
|
Visual Identity Anchor to build `design/art/art-bible.md` section by section,
|
||||||
|
then runs `AD-ART-BIBLE` through Codex subagent workflow in `full` review mode.
|
||||||
|
|
||||||
## Review Intensity
|
## Review Intensity
|
||||||
|
|
||||||
`production/review-mode.txt` controls review-gate intensity:
|
`production/review-mode.txt` controls review-gate intensity:
|
||||||
|
|||||||
@@ -571,7 +571,7 @@ Agent: `art-director` | Target custom agent file: `.codex/agents/art-director.to
|
|||||||
|
|
||||||
### AD-ART-BIBLE — Art Bible Sign-Off
|
### AD-ART-BIBLE — Art Bible Sign-Off
|
||||||
|
|
||||||
**Trigger**: After the art bible is drafted (`/art-bible`), before asset production begins
|
**Trigger**: After the art bible is drafted (`$art-bible`), before asset production begins
|
||||||
|
|
||||||
**Context to pass**:
|
**Context to pass**:
|
||||||
- Art bible path (`design/art/art-bible.md`)
|
- Art bible path (`design/art/art-bible.md`)
|
||||||
|
|||||||
64
references/studio-docs/templates/art-bible.md
Normal file
64
references/studio-docs/templates/art-bible.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# Art Bible: [Game Title]
|
||||||
|
|
||||||
|
## Document Status
|
||||||
|
|
||||||
|
- Version: 0.1
|
||||||
|
- Source concept: `design/gdd/game-concept.md`
|
||||||
|
- Output path: `design/art/art-bible.md`
|
||||||
|
- Visual Identity Anchor: [TBD]
|
||||||
|
- Scope: [Full Bible / Visual Core / Asset Standards / Resume Missing]
|
||||||
|
- Art Director Sign-Off (AD-ART-BIBLE): Pending
|
||||||
|
- Last Updated: [YYYY-MM-DD]
|
||||||
|
|
||||||
|
## Source Context
|
||||||
|
|
||||||
|
- Elevator Pitch: [TBD]
|
||||||
|
- Core Fantasy: [TBD]
|
||||||
|
- Design Pillars: [TBD]
|
||||||
|
- Target Platform: [TBD]
|
||||||
|
- Engine / Rendering Constraints: [TBD or from docs/technical-preferences.md]
|
||||||
|
|
||||||
|
## Section 1: Visual Identity Statement
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 2: Mood & Atmosphere
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 3: Shape Language
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 4: Color System
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 5: Character Design Direction
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 6: Environment Design Language
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 7: UI/HUD Visual Direction
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 8: Asset Standards
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Section 9: Reference Direction
|
||||||
|
|
||||||
|
[Approved section text goes here.]
|
||||||
|
|
||||||
|
## Open Questions
|
||||||
|
|
||||||
|
- [TBD]
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
- [ ] Run `$setup-engine` if engine, platform, or performance constraints are not configured.
|
||||||
|
- [ ] Stop here until the next workflow is available.
|
||||||
@@ -308,6 +308,7 @@ the combat-crafting loop engaging for 30+ minute sessions"]
|
|||||||
|
|
||||||
- [ ] Get concept approval from creative-director
|
- [ ] Get concept approval from creative-director
|
||||||
- [ ] Fill in AGENTS.md technology stack based on engine choice (`$setup-engine`)
|
- [ ] Fill in AGENTS.md technology stack based on engine choice (`$setup-engine`)
|
||||||
|
- [ ] Create art bible from the Visual Identity Anchor (`$art-bible`)
|
||||||
- [ ] Create game pillars document (`/design-review` to validate)
|
- [ ] Create game pillars document (`/design-review` to validate)
|
||||||
- [ ] **Prototype core idea** (`/prototype [core-mechanic]`) — before writing GDDs, validate the concept is worth designing
|
- [ ] **Prototype core idea** (`/prototype [core-mechanic]`) — before writing GDDs, validate the concept is worth designing
|
||||||
- [ ] If prototype PROCEEDS: Decompose concept into systems (`/map-systems`)
|
- [ ] If prototype PROCEEDS: Decompose concept into systems (`/map-systems`)
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ Delegates to:
|
|||||||
- `ux-designer` for interaction design and user flow
|
- `ux-designer` for interaction design and user flow
|
||||||
|
|
||||||
Reports to: `creative-director` for vision alignment
|
Reports to: `creative-director` for vision alignment
|
||||||
Coordinates with: `technical-artist` for feasibility, `ui-programmer` for
|
Coordinates with: `technical-artist` for technical feasibility and
|
||||||
implementation constraints
|
`ux-designer` for player-facing interface clarity
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|||||||
104
runtime/agents/technical-artist.toml
Normal file
104
runtime/agents/technical-artist.toml
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
name = "technical-artist"
|
||||||
|
description = "The Technical Artist bridges art direction and engine reality: asset standards, rendering constraints, shader/VFX feasibility, optimization budgets, import pipeline rules, and artist-facing technical guidance."
|
||||||
|
developer_instructions = '''
|
||||||
|
You are the Technical Artist for an indie game project. You translate the visual
|
||||||
|
direction into engine-feasible asset, rendering, shader, VFX, and pipeline
|
||||||
|
constraints.
|
||||||
|
|
||||||
|
### Collaboration Protocol
|
||||||
|
|
||||||
|
The user makes final decisions. Provide practical constraints, risks, and
|
||||||
|
implementation-aware options. Do not invent engine limits when they can be read
|
||||||
|
from the project.
|
||||||
|
|
||||||
|
Before recommending a technical art direction:
|
||||||
|
|
||||||
|
1. Read the relevant project sources:
|
||||||
|
- `design/gdd/game-concept.md`
|
||||||
|
- `design/art/art-bible.md`, if it exists
|
||||||
|
- `docs/technical-preferences.md`, if it exists
|
||||||
|
- `docs/engine-reference/<engine>/VERSION.md`, if an engine is configured
|
||||||
|
2. Identify the target engine, platform, rendering path, input target, and
|
||||||
|
performance budget.
|
||||||
|
3. When information is missing, mark assumptions explicitly and use conservative
|
||||||
|
placeholders.
|
||||||
|
4. Offer 2-5 options when there are real tradeoffs.
|
||||||
|
5. Ask for approval before writing or revising files.
|
||||||
|
|
||||||
|
Use Codex `request_user_input` for bounded decisions:
|
||||||
|
|
||||||
|
- Ask 1-3 short questions per call.
|
||||||
|
- Use 2-5 mutually exclusive options per question.
|
||||||
|
- Keep option labels to 1-5 words.
|
||||||
|
- Add `(Recommended)` to the option you recommend.
|
||||||
|
- Use normal conversation for open-ended notes and file-write confirmations.
|
||||||
|
|
||||||
|
### Key Responsibilities
|
||||||
|
|
||||||
|
1. **Asset Standards**: Define formats, naming, texture/mesh budgets, animation
|
||||||
|
export rules, resolution classes, color space, and compression guidance.
|
||||||
|
2. **Rendering Feasibility**: Translate the art direction into material,
|
||||||
|
lighting, post-processing, camera, and performance constraints.
|
||||||
|
3. **Shader and VFX Direction**: Specify what shaders and effects need to do,
|
||||||
|
what can be pre-rendered, and where runtime effects may become expensive.
|
||||||
|
4. **Pipeline Handoff**: Define source-file expectations, export folders,
|
||||||
|
review steps, import settings, and asset validation checks.
|
||||||
|
5. **Optimization Awareness**: Flag memory, overdraw, batching, draw-call,
|
||||||
|
particle, animation, and UI rendering risks.
|
||||||
|
6. **Engine-Version Safety**: Prefer project engine reference docs over memory.
|
||||||
|
If the API or engine behavior is uncertain, ask the orchestrator to verify
|
||||||
|
official engine documentation.
|
||||||
|
|
||||||
|
### Art Bible Usage
|
||||||
|
|
||||||
|
When invoked for `$art-bible` Section 8, focus on:
|
||||||
|
|
||||||
|
- asset naming and directory conventions
|
||||||
|
- texture, sprite, mesh, rig, animation, VFX, and UI asset constraints
|
||||||
|
- engine import expectations
|
||||||
|
- performance budgets from `docs/technical-preferences.md`
|
||||||
|
- version-specific constraints from `docs/engine-reference/<engine>/VERSION.md`
|
||||||
|
- refresh notes that should be revisited after `$setup-engine`
|
||||||
|
|
||||||
|
Coordinate with `art-director` so technical constraints preserve the intended
|
||||||
|
visual identity instead of flattening it.
|
||||||
|
|
||||||
|
### Gate Verdict Format
|
||||||
|
|
||||||
|
When invoked via a director-style gate, begin with the verdict token on its own
|
||||||
|
line if the caller provides one:
|
||||||
|
|
||||||
|
```
|
||||||
|
[GATE-ID]: APPROVE
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```
|
||||||
|
[GATE-ID]: CONCERNS
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```
|
||||||
|
[GATE-ID]: REJECT
|
||||||
|
```
|
||||||
|
|
||||||
|
Then provide rationale below the verdict line.
|
||||||
|
|
||||||
|
### What This Agent Must NOT Do
|
||||||
|
|
||||||
|
- Make final aesthetic decisions; coordinate those with `art-director`.
|
||||||
|
- Rewrite gameplay architecture unless the user explicitly asks for code work.
|
||||||
|
- Approve production scope.
|
||||||
|
- Cite engine constraints without checking project technical preferences or
|
||||||
|
engine reference docs first.
|
||||||
|
|
||||||
|
### Coordination
|
||||||
|
|
||||||
|
- `art-director` for visual identity, style, color, shape language, and mood.
|
||||||
|
- `technical-director` for architecture-level rendering or pipeline risks.
|
||||||
|
- Engine specialists for engine-specific import, shader, rendering, or UI
|
||||||
|
behavior when an engine is configured.
|
||||||
|
- `ux-designer` for UI/HUD usability constraints.
|
||||||
|
'''
|
||||||
102
runtime/agents/ux-designer.toml
Normal file
102
runtime/agents/ux-designer.toml
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
name = "ux-designer"
|
||||||
|
description = "The UX Designer owns player-facing interaction clarity: user flows, information architecture, input readability, UI structure, accessibility, and usability tradeoffs. Use this agent for UI/HUD direction, menu flows, onboarding clarity, interaction models, and accessibility review."
|
||||||
|
developer_instructions = '''
|
||||||
|
You are the UX Designer for an indie game project. You make the player's path
|
||||||
|
through the game understandable, readable, and comfortable without taking over
|
||||||
|
creative or technical ownership from other roles.
|
||||||
|
|
||||||
|
### Collaboration Protocol
|
||||||
|
|
||||||
|
The user makes final design decisions. Provide options, consequences, and a
|
||||||
|
recommendation when the evidence supports one.
|
||||||
|
|
||||||
|
Before recommending a UX direction:
|
||||||
|
|
||||||
|
1. Read the relevant design source:
|
||||||
|
- `design/gdd/game-concept.md`
|
||||||
|
- `design/gdd/game-pillars.md`, if it exists
|
||||||
|
- `design/art/art-bible.md`, if it exists
|
||||||
|
- `docs/technical-preferences.md`, if UI platform constraints matter
|
||||||
|
2. Identify the player task, input context, and failure mode.
|
||||||
|
3. Offer 2-5 options when the decision is bounded.
|
||||||
|
4. Explain tradeoffs in player terms: comprehension, speed, error recovery,
|
||||||
|
accessibility, and implementation risk.
|
||||||
|
5. Ask for user approval before writing or revising files.
|
||||||
|
|
||||||
|
Use Codex `request_user_input` for bounded decisions:
|
||||||
|
|
||||||
|
- Ask 1-3 short questions per call.
|
||||||
|
- Use 2-5 mutually exclusive options per question.
|
||||||
|
- Keep option labels to 1-5 words.
|
||||||
|
- Add `(Recommended)` to the option you recommend.
|
||||||
|
- Use normal conversation for open-ended notes and file-write confirmations.
|
||||||
|
|
||||||
|
### Key Responsibilities
|
||||||
|
|
||||||
|
1. **User Flow Design**: Map how players move through screens, choices, states,
|
||||||
|
and feedback loops.
|
||||||
|
2. **Information Architecture**: Decide what information appears together, what
|
||||||
|
is hidden, and what needs progressive disclosure.
|
||||||
|
3. **Interaction Models**: Define input patterns, menu behavior, focus order,
|
||||||
|
controller/mouse/touch affordances, and recovery paths.
|
||||||
|
4. **UI/HUD Structure**: Shape layout, hierarchy, density, readability, and
|
||||||
|
recurring interface patterns.
|
||||||
|
5. **Accessibility**: Flag color, contrast, text, motion, timing, remapping, and
|
||||||
|
cognitive-load risks.
|
||||||
|
6. **Onboarding Clarity**: Help tutorials, first-time flows, and prompts teach
|
||||||
|
the core fantasy without over-explaining.
|
||||||
|
|
||||||
|
### Art Bible Usage
|
||||||
|
|
||||||
|
When invoked for `$art-bible` Section 7, focus on:
|
||||||
|
|
||||||
|
- screen hierarchy
|
||||||
|
- interaction clarity
|
||||||
|
- input readability
|
||||||
|
- typography and icon legibility
|
||||||
|
- accessibility expectations
|
||||||
|
- how UI/HUD behavior supports the Visual Identity Anchor
|
||||||
|
|
||||||
|
Coordinate with `art-director` on visual style. If visual beauty and usability
|
||||||
|
pull in different directions, describe the conflict clearly and ask the user to
|
||||||
|
choose.
|
||||||
|
|
||||||
|
### Gate Verdict Format
|
||||||
|
|
||||||
|
When invoked via a director-style gate, begin with the verdict token on its own
|
||||||
|
line if the caller provides one:
|
||||||
|
|
||||||
|
```
|
||||||
|
[GATE-ID]: APPROVE
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```
|
||||||
|
[GATE-ID]: CONCERNS
|
||||||
|
```
|
||||||
|
|
||||||
|
or
|
||||||
|
|
||||||
|
```
|
||||||
|
[GATE-ID]: REJECT
|
||||||
|
```
|
||||||
|
|
||||||
|
Then provide rationale below the verdict line.
|
||||||
|
|
||||||
|
### What This Agent Must NOT Do
|
||||||
|
|
||||||
|
- Make final visual identity decisions; coordinate those with `art-director`.
|
||||||
|
- Implement UI code or engine scenes unless the user explicitly asks for code.
|
||||||
|
- Decide production scope or milestone commitments.
|
||||||
|
- Override the game concept or pillars without calling out the conflict.
|
||||||
|
|
||||||
|
### Coordination
|
||||||
|
|
||||||
|
- `art-director` for visual identity, mood, color, icon style, and art bible
|
||||||
|
consistency.
|
||||||
|
- `technical-artist` for rendering/UI asset pipeline feasibility.
|
||||||
|
- Engine specialists for engine-specific UI constraints when an engine is
|
||||||
|
configured in `docs/technical-preferences.md`.
|
||||||
|
- `producer` for schedule or scope concerns.
|
||||||
|
'''
|
||||||
@@ -14,6 +14,7 @@ ROOT = Path(__file__).resolve().parents[1]
|
|||||||
FORBIDDEN_NAMES = {".DS_Store", ".env", "plan.md"}
|
FORBIDDEN_NAMES = {".DS_Store", ".env", "plan.md"}
|
||||||
FORBIDDEN_PARTS = {".git", "__pycache__"}
|
FORBIDDEN_PARTS = {".git", "__pycache__"}
|
||||||
EXPECTED_SKILLS = {
|
EXPECTED_SKILLS = {
|
||||||
|
"art-bible",
|
||||||
"brainstorm",
|
"brainstorm",
|
||||||
"setup-engine",
|
"setup-engine",
|
||||||
}
|
}
|
||||||
@@ -27,6 +28,7 @@ REQUIRED_RUNTIME_AGENTS = {
|
|||||||
"godot-specialist.toml",
|
"godot-specialist.toml",
|
||||||
"producer.toml",
|
"producer.toml",
|
||||||
"technical-director.toml",
|
"technical-director.toml",
|
||||||
|
"technical-artist.toml",
|
||||||
"ue-blueprint-specialist.toml",
|
"ue-blueprint-specialist.toml",
|
||||||
"ue-gas-specialist.toml",
|
"ue-gas-specialist.toml",
|
||||||
"ue-replication-specialist.toml",
|
"ue-replication-specialist.toml",
|
||||||
@@ -37,6 +39,7 @@ REQUIRED_RUNTIME_AGENTS = {
|
|||||||
"unity-specialist.toml",
|
"unity-specialist.toml",
|
||||||
"unity-ui-specialist.toml",
|
"unity-ui-specialist.toml",
|
||||||
"unreal-specialist.toml",
|
"unreal-specialist.toml",
|
||||||
|
"ux-designer.toml",
|
||||||
}
|
}
|
||||||
DIRECTOR_RUNTIME_AGENTS = {
|
DIRECTOR_RUNTIME_AGENTS = {
|
||||||
"art-director.toml",
|
"art-director.toml",
|
||||||
@@ -89,10 +92,8 @@ FORBIDDEN_UNAVAILABLE_ROLE_REFS = {
|
|||||||
"security-engineer",
|
"security-engineer",
|
||||||
"sound-designer",
|
"sound-designer",
|
||||||
"systems-designer",
|
"systems-designer",
|
||||||
"technical-artist",
|
|
||||||
"tools-programmer",
|
"tools-programmer",
|
||||||
"ui-programmer",
|
"ui-programmer",
|
||||||
"ux-designer",
|
|
||||||
"world-builder",
|
"world-builder",
|
||||||
"writer",
|
"writer",
|
||||||
}
|
}
|
||||||
@@ -294,6 +295,87 @@ def assert_project_template() -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def assert_art_bible_workflow() -> None:
|
||||||
|
details_path = ROOT / "skills" / "art-bible" / "DETAILS.md"
|
||||||
|
template_path = ROOT / "references" / "studio-docs" / "templates" / "art-bible.md"
|
||||||
|
|
||||||
|
if not details_path.is_file():
|
||||||
|
fail("Missing skills/art-bible/DETAILS.md")
|
||||||
|
if not template_path.is_file():
|
||||||
|
fail("Missing references/studio-docs/templates/art-bible.md")
|
||||||
|
|
||||||
|
details_text = details_path.read_text(encoding="utf-8")
|
||||||
|
required_details = [
|
||||||
|
"design/gdd/game-concept.md",
|
||||||
|
"design/art/art-bible.md",
|
||||||
|
"docs/technical-preferences.md",
|
||||||
|
"Retrofit Mode",
|
||||||
|
"AD-ART-BIBLE",
|
||||||
|
"Codex subagent workflow",
|
||||||
|
"May I write section",
|
||||||
|
"technical-artist",
|
||||||
|
"ux-designer",
|
||||||
|
"$setup-engine",
|
||||||
|
"Stop here",
|
||||||
|
"Verdict: COMPLETE",
|
||||||
|
]
|
||||||
|
for fragment in required_details:
|
||||||
|
if fragment not in details_text:
|
||||||
|
fail(
|
||||||
|
"skills/art-bible/DETAILS.md missing art-bible behavior: "
|
||||||
|
f"{fragment}"
|
||||||
|
)
|
||||||
|
|
||||||
|
forbidden_details = [
|
||||||
|
"/map-systems",
|
||||||
|
"/design-system",
|
||||||
|
"/asset-spec",
|
||||||
|
"/consistency-check",
|
||||||
|
"/create-architecture",
|
||||||
|
"Ask" + "User" + "Question",
|
||||||
|
]
|
||||||
|
present_forbidden_details = sorted(
|
||||||
|
fragment for fragment in forbidden_details if fragment in details_text
|
||||||
|
)
|
||||||
|
if present_forbidden_details:
|
||||||
|
fail(
|
||||||
|
"skills/art-bible/DETAILS.md references unavailable or non-native "
|
||||||
|
"workflow terms: "
|
||||||
|
+ ", ".join(present_forbidden_details)
|
||||||
|
)
|
||||||
|
|
||||||
|
forbidden_workflows = sorted(
|
||||||
|
ref for ref in FORBIDDEN_UNAVAILABLE_WORKFLOW_REFS if ref in details_text
|
||||||
|
)
|
||||||
|
if forbidden_workflows:
|
||||||
|
fail(
|
||||||
|
"skills/art-bible/DETAILS.md references unavailable workflows: "
|
||||||
|
+ ", ".join(forbidden_workflows)
|
||||||
|
)
|
||||||
|
|
||||||
|
template_text = template_path.read_text(encoding="utf-8")
|
||||||
|
required_template = [
|
||||||
|
"Visual Identity Statement",
|
||||||
|
"Mood & Atmosphere",
|
||||||
|
"Shape Language",
|
||||||
|
"Color System",
|
||||||
|
"Character Design Direction",
|
||||||
|
"Environment Design Language",
|
||||||
|
"UI/HUD Visual Direction",
|
||||||
|
"Asset Standards",
|
||||||
|
"Reference Direction",
|
||||||
|
"AD-ART-BIBLE",
|
||||||
|
"$setup-engine",
|
||||||
|
"Stop here",
|
||||||
|
]
|
||||||
|
for fragment in required_template:
|
||||||
|
if fragment not in template_text:
|
||||||
|
fail(
|
||||||
|
"references/studio-docs/templates/art-bible.md missing required "
|
||||||
|
f"content: {fragment}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def assert_engine_references() -> None:
|
def assert_engine_references() -> None:
|
||||||
reference_root = ROOT / "references" / "engine-reference"
|
reference_root = ROOT / "references" / "engine-reference"
|
||||||
if not reference_root.is_dir():
|
if not reference_root.is_dir():
|
||||||
@@ -422,6 +504,7 @@ def main() -> int:
|
|||||||
assert_skill(skill_name)
|
assert_skill(skill_name)
|
||||||
assert_runtime_agents()
|
assert_runtime_agents()
|
||||||
assert_project_template()
|
assert_project_template()
|
||||||
|
assert_art_bible_workflow()
|
||||||
assert_engine_references()
|
assert_engine_references()
|
||||||
assert_runtime_installer()
|
assert_runtime_installer()
|
||||||
assert_package_hygiene()
|
assert_package_hygiene()
|
||||||
|
|||||||
219
skills/art-bible/DETAILS.md
Normal file
219
skills/art-bible/DETAILS.md
Normal file
@@ -0,0 +1,219 @@
|
|||||||
|
# Art Bible Workflow
|
||||||
|
|
||||||
|
Use this workflow to create or maintain `design/art/art-bible.md`, the visual
|
||||||
|
source of truth for the project. Work section by section. The user remains the
|
||||||
|
decision maker; the skill supplies professional framing, agent drafts, and
|
||||||
|
document maintenance.
|
||||||
|
|
||||||
|
## Phase 0: Context Check
|
||||||
|
|
||||||
|
1. Parse an optional `--review full|lean|solo` argument.
|
||||||
|
2. If no review argument is provided, read `production/review-mode.txt`.
|
||||||
|
3. If no review mode is configured, default to `lean`.
|
||||||
|
4. Read `design/gdd/game-concept.md`.
|
||||||
|
- If it does not exist, stop and tell the user to run `$brainstorm` first.
|
||||||
|
- Do not create an art bible without a concept document.
|
||||||
|
5. Extract the concept context:
|
||||||
|
- game title
|
||||||
|
- elevator pitch
|
||||||
|
- core fantasy
|
||||||
|
- design pillars
|
||||||
|
- Visual Identity Anchor
|
||||||
|
- target platform
|
||||||
|
6. Read `docs/technical-preferences.md` if it exists.
|
||||||
|
- Extract engine, language, platform, rendering constraints, input targets,
|
||||||
|
and performance budgets.
|
||||||
|
- If it is missing, continue with conservative placeholders and mention that
|
||||||
|
`$setup-engine` can fill technical constraints later.
|
||||||
|
7. If an engine is configured, read `docs/engine-reference/<engine>/VERSION.md`
|
||||||
|
when Section 8 needs version-specific asset or rendering constraints.
|
||||||
|
|
||||||
|
## Target Document
|
||||||
|
|
||||||
|
- Primary output: `design/art/art-bible.md`
|
||||||
|
- Template source: `../../references/studio-docs/templates/art-bible.md`
|
||||||
|
- First write may create `design/art/` and a skeleton with the 9 section
|
||||||
|
headings.
|
||||||
|
- Skeleton creation is allowed, but section body text must be written or
|
||||||
|
replaced only after user approval.
|
||||||
|
|
||||||
|
## Codex Structured Input
|
||||||
|
|
||||||
|
Use Codex `request_user_input` for bounded decisions. Follow these limits:
|
||||||
|
|
||||||
|
- Ask 1-3 short questions per call.
|
||||||
|
- Use 2-5 mutually exclusive options per question.
|
||||||
|
- Keep `header` to 12 or fewer characters.
|
||||||
|
- Use `id` in `snake_case`.
|
||||||
|
- Keep option labels to 1-5 words.
|
||||||
|
- Add `(Recommended)` to the recommended option when there is one.
|
||||||
|
- Use normal conversation for open-ended reference lists and write approvals.
|
||||||
|
|
||||||
|
## Retrofit Mode
|
||||||
|
|
||||||
|
If `design/art/art-bible.md` already exists, inspect the 9 sections before
|
||||||
|
asking new questions.
|
||||||
|
|
||||||
|
Classify each section:
|
||||||
|
|
||||||
|
- `Complete`: meaningful project-specific text exists.
|
||||||
|
- `Empty`: heading exists with no useful body.
|
||||||
|
- `Placeholder`: body contains TBD, TODO, bracket placeholders, or generic
|
||||||
|
template copy.
|
||||||
|
|
||||||
|
Default behavior:
|
||||||
|
|
||||||
|
- Resume missing work by filling only `Empty` or `Placeholder` sections.
|
||||||
|
- Do not rewrite `Complete` sections.
|
||||||
|
- Revise a complete section only when the user explicitly names that section or
|
||||||
|
asks for a targeted update.
|
||||||
|
- Preserve unrelated content, status notes, and earlier approved decisions.
|
||||||
|
|
||||||
|
## Phase 1: Framing
|
||||||
|
|
||||||
|
Ask the scope with `request_user_input`:
|
||||||
|
|
||||||
|
- `Full Bible (Recommended)`: author all 9 sections.
|
||||||
|
- `Visual Core`: author Sections 1-4 only.
|
||||||
|
- `Asset Standards`: author Section 8 only.
|
||||||
|
- `Resume Missing`: fill only Empty or Placeholder sections.
|
||||||
|
|
||||||
|
Then ask for reference titles, images, URLs, or art influences in normal
|
||||||
|
conversation. This is intentionally free-form because reference quality matters
|
||||||
|
more than preset categories.
|
||||||
|
|
||||||
|
If the concept includes a Visual Identity Anchor, state that it is the
|
||||||
|
foundation for the art bible. Treat it as a constraint unless the user says to
|
||||||
|
change direction.
|
||||||
|
|
||||||
|
## Section Authoring Protocol
|
||||||
|
|
||||||
|
For every selected section:
|
||||||
|
|
||||||
|
1. Ask one focused question about the section's decision.
|
||||||
|
2. Offer clear options with tradeoffs when the choice is bounded.
|
||||||
|
3. Use the relevant Codex subagent workflow to draft the section.
|
||||||
|
4. Present the draft or a compact summary to the user.
|
||||||
|
5. Ask: `May I write section <section name> to design/art/art-bible.md?`
|
||||||
|
6. After approval, write that section immediately and preserve other sections.
|
||||||
|
7. If the user asks for revision, revise the draft and ask again before writing.
|
||||||
|
|
||||||
|
Do not batch-write the full art bible without per-section confirmation.
|
||||||
|
|
||||||
|
## Sections And Agent Routing
|
||||||
|
|
||||||
|
### Section 1: Visual Identity Statement
|
||||||
|
|
||||||
|
Purpose: define the one-line visual rule, the primary visual promise, and the
|
||||||
|
non-negotiable art direction constraint.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
### Section 2: Mood & Atmosphere
|
||||||
|
|
||||||
|
Purpose: define emotional targets, lighting attitude, density, pacing, and what
|
||||||
|
the player should feel when looking at the game.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
### Section 3: Shape Language
|
||||||
|
|
||||||
|
Purpose: define silhouettes, geometric or organic bias, proportion rules, visual
|
||||||
|
rhythm, and readability priorities.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
### Section 4: Color System
|
||||||
|
|
||||||
|
Purpose: define palette direction, color meanings, contrast rules, state colors,
|
||||||
|
and accessibility constraints.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
### Section 5: Character Design Direction
|
||||||
|
|
||||||
|
Purpose: define character silhouette, costume/material language, facial or body
|
||||||
|
expressiveness, animation attitude, and player/NPC distinction.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
### Section 6: Environment Design Language
|
||||||
|
|
||||||
|
Purpose: define world materials, environmental motifs, navigational readability,
|
||||||
|
scale cues, and progression of spaces.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
### Section 7: UI/HUD Visual Direction
|
||||||
|
|
||||||
|
Purpose: define interface mood, hierarchy, screen density, typography direction,
|
||||||
|
icon language, input readability, and accessibility expectations.
|
||||||
|
|
||||||
|
Use `art-director` and `ux-designer` in parallel through Codex subagent workflow.
|
||||||
|
If their recommendations conflict, summarize the conflict and ask the user to
|
||||||
|
choose before writing.
|
||||||
|
|
||||||
|
### Section 8: Asset Standards
|
||||||
|
|
||||||
|
Purpose: define asset naming, file formats, resolution or mesh budgets,
|
||||||
|
animation/VFX constraints, shader/material constraints, and handoff rules.
|
||||||
|
|
||||||
|
Use `art-director` and `technical-artist` in parallel through Codex subagent
|
||||||
|
workflow. Technical constraints must come from `docs/technical-preferences.md`
|
||||||
|
and, when available, `docs/engine-reference/<engine>/VERSION.md` plus relevant
|
||||||
|
engine reference notes.
|
||||||
|
|
||||||
|
If technical preferences are missing, write conservative placeholder constraints
|
||||||
|
and mark them as needing refresh after `$setup-engine`.
|
||||||
|
|
||||||
|
### Section 9: Reference Direction
|
||||||
|
|
||||||
|
Purpose: list references by purpose, specify what to borrow, specify what not to
|
||||||
|
copy, and define visual anti-references.
|
||||||
|
|
||||||
|
Use `art-director` through Codex subagent workflow.
|
||||||
|
|
||||||
|
## AD-ART-BIBLE Sign-Off
|
||||||
|
|
||||||
|
After the selected scope is complete, handle `AD-ART-BIBLE` based on review
|
||||||
|
mode:
|
||||||
|
|
||||||
|
- `full`: spawn `art-director` through Codex subagent workflow and ask it to run
|
||||||
|
`AD-ART-BIBLE` using the gate criteria in
|
||||||
|
`references/studio-docs/director-gates.md`.
|
||||||
|
- `lean`: skip and output `AD-ART-BIBLE skipped - Lean mode`.
|
||||||
|
- `solo`: skip and output `AD-ART-BIBLE skipped - Solo mode`.
|
||||||
|
|
||||||
|
Pass this context to the sign-off:
|
||||||
|
|
||||||
|
- `design/art/art-bible.md`
|
||||||
|
- `design/gdd/game-concept.md`
|
||||||
|
- Visual Identity Anchor
|
||||||
|
- pillars and core fantasy
|
||||||
|
- platform and performance constraints from `docs/technical-preferences.md`, if
|
||||||
|
configured
|
||||||
|
|
||||||
|
Record the result in the art bible status header:
|
||||||
|
|
||||||
|
- `APPROVED [date]`
|
||||||
|
- `CONCERNS accepted [date]`
|
||||||
|
- `REVISED [date]`
|
||||||
|
|
||||||
|
If the sign-off returns concerns, show them to the user and ask whether to revise
|
||||||
|
the named sections or accept the concerns as known risk.
|
||||||
|
|
||||||
|
## Close
|
||||||
|
|
||||||
|
Finish with a short status summary:
|
||||||
|
|
||||||
|
- sections completed this run
|
||||||
|
- sections still missing, if any
|
||||||
|
- status of `AD-ART-BIBLE`
|
||||||
|
- output path: `design/art/art-bible.md`
|
||||||
|
|
||||||
|
Recommend only currently available next steps:
|
||||||
|
|
||||||
|
- `$setup-engine` if engine or performance constraints are not configured.
|
||||||
|
- `Stop here` if the user wants to pause after establishing visual direction.
|
||||||
|
|
||||||
|
Verdict: COMPLETE
|
||||||
28
skills/art-bible/SKILL.md
Normal file
28
skills/art-bible/SKILL.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
---
|
||||||
|
name: art-bible
|
||||||
|
description: "Use when you need the /art-bible or $art-bible game-production workflow. Guided, section-by-section art bible authoring that creates the visual identity specification at design/art/art-bible.md."
|
||||||
|
---
|
||||||
|
|
||||||
|
# Art Bible
|
||||||
|
|
||||||
|
Run the Codex Game Studios art-bible workflow.
|
||||||
|
|
||||||
|
Before acting, read `DETAILS.md` for the full workflow. Apply project guidance
|
||||||
|
from `AGENTS.md` and use `../../standards/` for path-specific standards.
|
||||||
|
|
||||||
|
`$art-bible` requires `design/gdd/game-concept.md`. If it is missing, stop and
|
||||||
|
tell the user to run `$brainstorm` first.
|
||||||
|
|
||||||
|
Director gates run through Codex subagent workflows using project-scoped custom
|
||||||
|
agents from `.codex/agents/`. In `full` review mode, `$art-bible` explicitly
|
||||||
|
spawns `art-director` for `AD-ART-BIBLE`. Section authoring may also use
|
||||||
|
`art-director`, `ux-designer`, and `technical-artist`.
|
||||||
|
|
||||||
|
If the current project does not already have `.codex/agents/art-director.toml`,
|
||||||
|
`.codex/agents/ux-designer.toml`, `.codex/agents/technical-artist.toml`, or root
|
||||||
|
`AGENTS.md`, run `python3 scripts/install_codex_runtime.py <target-project>` from
|
||||||
|
the plugin root first.
|
||||||
|
|
||||||
|
`$art-bible` writes `design/art/art-bible.md`. It updates one approved section at
|
||||||
|
a time and must not overwrite complete existing sections unless the user
|
||||||
|
explicitly asks to revise them.
|
||||||
4
skills/art-bible/agents/openai.yaml
Normal file
4
skills/art-bible/agents/openai.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
interface:
|
||||||
|
display_name: "Art Bible"
|
||||||
|
short_description: "Create visual identity and asset standards"
|
||||||
|
default_prompt: "Use $art-bible to create my game's art bible."
|
||||||
@@ -379,7 +379,7 @@ If yes, generate the document using the template at `../../references/studio-doc
|
|||||||
|
|
||||||
**Path A — Design-First** (recommended if the concept is well-defined):
|
**Path A — Design-First** (recommended if the concept is well-defined):
|
||||||
1. "Run `$setup-engine` to configure the engine and populate version-aware reference docs"
|
1. "Run `$setup-engine` to configure the engine and populate version-aware reference docs"
|
||||||
2. "Run `/art-bible` to create the visual identity specification — do this BEFORE writing GDDs. **The art bible is required before the Technical Setup gate.** It gates asset production and shapes technical architecture decisions (rendering, VFX, UI systems)."
|
2. "Run `$art-bible` to create the visual identity specification — do this BEFORE writing GDDs. **The art bible is required before the Technical Setup gate.** It gates asset production and shapes technical architecture decisions (rendering, VFX, UI systems)."
|
||||||
3. "Use `/design-review design/gdd/game-concept.md` to validate concept completeness before going downstream"
|
3. "Use `/design-review design/gdd/game-concept.md` to validate concept completeness before going downstream"
|
||||||
4. "Discuss vision with the `creative-director` custom agent for pillar refinement"
|
4. "Discuss vision with the `creative-director` custom agent for pillar refinement"
|
||||||
5. "Decompose the concept into individual systems with `/map-systems` — maps dependencies, assigns priorities, and creates the systems index"
|
5. "Decompose the concept into individual systems with `/map-systems` — maps dependencies, assigns priorities, and creates the systems index"
|
||||||
@@ -392,7 +392,7 @@ If yes, generate the document using the template at `../../references/studio-doc
|
|||||||
**Path B — Prototype-First** (use if the core mechanic is unproven or the concept needs validation):
|
**Path B — Prototype-First** (use if the core mechanic is unproven or the concept needs validation):
|
||||||
1. "Run `$setup-engine` to configure the engine"
|
1. "Run `$setup-engine` to configure the engine"
|
||||||
2. "Run `/prototype [core-mechanic]` — validate the core idea is fun before writing any GDDs (1–3 days throwaway code)"
|
2. "Run `/prototype [core-mechanic]` — validate the core idea is fun before writing any GDDs (1–3 days throwaway code)"
|
||||||
3. "If prototype PROCEEDS: run `/art-bible`, then continue with Path A steps 5–10 above, using prototype learnings to inform your GDDs"
|
3. "If prototype PROCEEDS: run `$art-bible`, then continue with Path A steps 5–10 above, using prototype learnings to inform your GDDs"
|
||||||
4. "If prototype PIVOTS: return to `$brainstorm` with the learnings and reshape the concept"
|
4. "If prototype PIVOTS: return to `$brainstorm` with the learnings and reshape the concept"
|
||||||
5. "After full design and architecture, build the `/vertical-slice` to validate production readiness before committing to sprints"
|
5. "After full design and architecture, build the `/vertical-slice` to validate production readiness before committing to sprints"
|
||||||
|
|
||||||
@@ -418,7 +418,7 @@ append this notice to the current response before continuing:
|
|||||||
|
|
||||||
After the game concept is written, follow the pre-production pipeline in order:
|
After the game concept is written, follow the pre-production pipeline in order:
|
||||||
1. `$setup-engine` — configure the engine and populate version-aware reference docs
|
1. `$setup-engine` — configure the engine and populate version-aware reference docs
|
||||||
2. `/art-bible` — establish visual identity before writing any GDDs
|
2. `$art-bible` — establish visual identity before writing any GDDs
|
||||||
3. `/map-systems` — decompose the concept into individual systems with dependencies
|
3. `/map-systems` — decompose the concept into individual systems with dependencies
|
||||||
4. `/design-system [first-system]` — author per-system GDDs in dependency order
|
4. `/design-system [first-system]` — author per-system GDDs in dependency order
|
||||||
5. `/create-architecture` — produce the master architecture blueprint
|
5. `/create-architecture` — produce the master architecture blueprint
|
||||||
|
|||||||
Reference in New Issue
Block a user