merge: codex repository foundation
This commit is contained in:
20
.agents/skills/task-closeout/SKILLS.md
Normal file
20
.agents/skills/task-closeout/SKILLS.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: task-closeout
|
||||
description: Use this skill when a development task is complete and needs a clean closeout: commit, docs check, merge target confirmation, and summary.
|
||||
---
|
||||
|
||||
When this skill is used:
|
||||
|
||||
1. Verify the current branch is a task branch, not main or develop.
|
||||
2. Verify the task scope was respected.
|
||||
3. Check whether docs or tests need updates.
|
||||
4. Prepare a clean commit message.
|
||||
5. Confirm the intended merge target.
|
||||
6. Summarize:
|
||||
- what changed
|
||||
- what was not changed
|
||||
- what remains open
|
||||
7. Stop.
|
||||
|
||||
Do not perform release actions.
|
||||
Do not merge into main.
|
||||
16
.codex/agents/docs_researcher.toml
Normal file
16
.codex/agents/docs_researcher.toml
Normal file
@ -0,0 +1,16 @@
|
||||
name = "docs_researcher"
|
||||
description = "Documentation-focused agent for workflow consistency and external doc verification."
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Focus on documentation and process consistency.
|
||||
|
||||
Check:
|
||||
- README accuracy
|
||||
- setup instructions
|
||||
- workflow docs
|
||||
- branch policy docs
|
||||
- task template clarity
|
||||
|
||||
When external docs matter, verify them before concluding.
|
||||
Do not make runtime or product changes unless explicitly asked.
|
||||
"""
|
||||
18
.codex/agents/implementer.toml
Normal file
18
.codex/agents/implementer.toml
Normal file
@ -0,0 +1,18 @@
|
||||
name = "implementer"
|
||||
description = "Implementation-focused agent for small, targeted, repository-safe changes."
|
||||
developer_instructions = """
|
||||
Work like a disciplined implementation engineer.
|
||||
|
||||
Follow the repository workflow in AGENTS.md exactly.
|
||||
Stay narrowly scoped to the requested task.
|
||||
Do not broaden scope.
|
||||
Prefer the smallest safe change.
|
||||
Update tests and docs when behavior changes.
|
||||
Always report:
|
||||
- branch strategy
|
||||
- files changed
|
||||
- commit message
|
||||
- merge target
|
||||
|
||||
Do not work directly on main or develop.
|
||||
"""
|
||||
18
.codex/agents/reviewer.toml
Normal file
18
.codex/agents/reviewer.toml
Normal file
@ -0,0 +1,18 @@
|
||||
name = "reviewer"
|
||||
description = "Read-only reviewer focused on correctness, regressions, workflow drift, and missing tests."
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Review like an owner.
|
||||
|
||||
Prioritize:
|
||||
- correctness
|
||||
- regressions
|
||||
- branch/workflow mistakes
|
||||
- documentation drift
|
||||
- missing tests
|
||||
- release-readiness blockers
|
||||
|
||||
Lead with concrete findings.
|
||||
Avoid style-only comments unless they hide a real risk.
|
||||
Do not propose broad redesign unless explicitly requested.
|
||||
"""
|
||||
7
.codex/config.toml
Normal file
7
.codex/config.toml
Normal file
@ -0,0 +1,7 @@
|
||||
project_root_markers = [".git"]
|
||||
project_doc_fallback_filenames = ["AGENTS.md", "TEAM_GUIDE.md"]
|
||||
project_doc_max_bytes = 65536
|
||||
|
||||
[agents]
|
||||
max_threads = 4
|
||||
max_depth = 1
|
||||
18
.editorconfig
Normal file
18
.editorconfig
Normal file
@ -0,0 +1,18 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml,json,toml}]
|
||||
indent_size = 2
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
65
.gitignore
vendored
Normal file
65
.gitignore
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
# OS / editor
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
*.swp
|
||||
*.swo
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
.python-version
|
||||
|
||||
# Virtualenvs
|
||||
.venv/
|
||||
venv/
|
||||
env/
|
||||
|
||||
# Packaging / build
|
||||
build/
|
||||
dist/
|
||||
*.egg-info/
|
||||
.eggs/
|
||||
pip-wheel-metadata/
|
||||
|
||||
# Testing / coverage
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
.coverage.*
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
|
||||
# Type check / lint caches
|
||||
.mypy_cache/
|
||||
.ruff_cache/
|
||||
.pyre/
|
||||
|
||||
# Django
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
media/
|
||||
staticfiles/
|
||||
local_settings.py
|
||||
|
||||
# Environment / secrets
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# Logs / pid
|
||||
*.log
|
||||
*.pid
|
||||
|
||||
# Jupyter
|
||||
.ipynb_checkpoints/
|
||||
|
||||
# Codex / agents local-only state
|
||||
.codex/tmp/
|
||||
.codex/cache/
|
||||
|
||||
# Project runtime data
|
||||
data/
|
||||
tmp/
|
||||
211
AGENTS.md
Normal file
211
AGENTS.md
Normal file
@ -0,0 +1,211 @@
|
||||
# AGENTS.md
|
||||
|
||||
## Scope of this repository
|
||||
|
||||
This repository is in **phase 0**.
|
||||
|
||||
The goal of this phase is to define:
|
||||
- how development with Codex and custom agents works
|
||||
- how repository workflow works
|
||||
- how tasks are executed and closed
|
||||
- how the project remains portable across machines
|
||||
|
||||
This phase is **not** for deciding the product architecture or implementing application features.
|
||||
|
||||
Agents must optimize for:
|
||||
- repeatability
|
||||
- portability
|
||||
- low ambiguity
|
||||
- clean branch discipline
|
||||
- durable project instructions stored in the repository
|
||||
|
||||
---
|
||||
|
||||
## Ground rules
|
||||
|
||||
- Do not work directly on `main`
|
||||
- Do not work directly on `develop`
|
||||
- Use task branches created from `develop`
|
||||
- Merge completed task branches back into `develop`
|
||||
- Do not rewrite history
|
||||
- Do not silently stash work and continue elsewhere
|
||||
- Do not broaden task scope unnecessarily
|
||||
- Stop after the requested task is complete
|
||||
|
||||
---
|
||||
|
||||
## Default Git workflow
|
||||
|
||||
Unless explicitly overridden by the user, use this branch model:
|
||||
|
||||
- `main` = stable production branch
|
||||
- `develop` = integration branch
|
||||
- `feature/*` = normal development work
|
||||
- `release/*` = release stabilization
|
||||
- `hotfix/*` = urgent production fixes
|
||||
|
||||
For normal implementation tasks:
|
||||
1. checkout `develop`
|
||||
2. create a `feature/*` branch from `develop`
|
||||
3. complete the task on that branch
|
||||
4. commit the work
|
||||
5. merge the feature branch back into `develop`
|
||||
6. stop
|
||||
|
||||
If a large multi-step initiative needs an umbrella integration branch, the user must explicitly approve it and the branch must be documented in `docs/WORKFLOW.md`.
|
||||
|
||||
---
|
||||
|
||||
## Required behavior for Codex tasks
|
||||
|
||||
For any coding task, agents should respond in this order:
|
||||
|
||||
1. confirm branch strategy
|
||||
2. state which branch will be used
|
||||
3. list the files to change
|
||||
4. explain the design briefly
|
||||
5. make the requested changes
|
||||
6. update tests/docs when relevant
|
||||
7. provide the commit message used
|
||||
8. confirm the merge target
|
||||
9. stop
|
||||
|
||||
If a remote fetch/pull fails, continue using local branch state and say so explicitly.
|
||||
|
||||
---
|
||||
|
||||
## Repository-first portability rules
|
||||
|
||||
Assume development may happen from different machines.
|
||||
|
||||
Anything durable must live in the repository, not only in local Codex config.
|
||||
|
||||
Put stable project behavior in:
|
||||
- `AGENTS.md`
|
||||
- `.codex/config.toml`
|
||||
- `.codex/agents/*.toml`
|
||||
- `.agents/skills/*`
|
||||
- `docs/*.md`
|
||||
|
||||
Do not rely on undocumented local conventions.
|
||||
|
||||
---
|
||||
|
||||
## What belongs in local machine config vs repository
|
||||
|
||||
### Must be repository-owned
|
||||
- task workflow
|
||||
- branch strategy
|
||||
- coding process
|
||||
- agent roles
|
||||
- repo-specific instructions
|
||||
- reusable task-closing workflows
|
||||
- machine setup instructions
|
||||
- test execution instructions
|
||||
|
||||
### Must stay local
|
||||
- authentication
|
||||
- personal shell aliases
|
||||
- personal editor preferences
|
||||
- secrets
|
||||
- API keys
|
||||
- machine-specific paths unless documented as examples only
|
||||
|
||||
---
|
||||
|
||||
## Agent role boundaries
|
||||
|
||||
### implementer
|
||||
Use for:
|
||||
- targeted implementation work
|
||||
- small safe refactors
|
||||
- wiring code/tests/docs for a defined task
|
||||
|
||||
Must avoid:
|
||||
- broad redesign without approval
|
||||
- speculative cleanup outside the task
|
||||
|
||||
### reviewer
|
||||
Use for:
|
||||
- correctness review
|
||||
- regression risk review
|
||||
- test gap review
|
||||
- release-readiness review
|
||||
|
||||
Must avoid:
|
||||
- making code changes directly unless explicitly asked
|
||||
|
||||
### docs_researcher
|
||||
Use for:
|
||||
- documentation verification
|
||||
- framework/API behavior checking
|
||||
- repo docs consistency checks
|
||||
|
||||
Must avoid:
|
||||
- changing runtime behavior unless explicitly asked
|
||||
|
||||
---
|
||||
|
||||
## Skills philosophy
|
||||
|
||||
Use skills for repeatable repository workflows, not for one-off prompts.
|
||||
|
||||
Preferred early skill examples:
|
||||
- task closeout
|
||||
- branch hygiene
|
||||
- release checklist
|
||||
- docs consistency check
|
||||
|
||||
Keep skills narrow and explicit.
|
||||
|
||||
---
|
||||
|
||||
## Testing discipline
|
||||
|
||||
When a task changes behavior, update or add tests where relevant.
|
||||
|
||||
If test tooling is not available in the runtime image, document the correct dev/test path instead of pretending tests ran.
|
||||
|
||||
Never claim tests passed unless they were actually executed.
|
||||
|
||||
---
|
||||
|
||||
## Documentation discipline
|
||||
|
||||
Whenever behavior changes, update docs if relevant.
|
||||
|
||||
At minimum, keep aligned:
|
||||
- `README.md`
|
||||
- `docs/WORKFLOW.md`
|
||||
- `docs/MACHINE_SETUP.md`
|
||||
- `docs/TASK_TEMPLATE.md`
|
||||
|
||||
Do not let docs drift from actual workflow.
|
||||
|
||||
---
|
||||
|
||||
## Out of scope in phase 0
|
||||
|
||||
Do not decide yet:
|
||||
- final application architecture
|
||||
- final domain model
|
||||
- runtime services beyond workflow tooling
|
||||
- database technology
|
||||
- ingestion strategy
|
||||
- feature list
|
||||
|
||||
If a task drifts into product design, stop and ask for a separate explicit decision.
|
||||
|
||||
---
|
||||
|
||||
## Preferred task style
|
||||
|
||||
Make the smallest safe change that solves the requested process problem.
|
||||
|
||||
Avoid:
|
||||
- unnecessary abstraction
|
||||
- premature architecture
|
||||
- speculative optimization
|
||||
- introducing tools that are not yet justified
|
||||
|
||||
This phase is about building a clean development method first.
|
||||
37
docs/MACHINE_SETUP.md
Normal file
37
docs/MACHINE_SETUP.md
Normal file
@ -0,0 +1,37 @@
|
||||
# Machine Setup
|
||||
|
||||
## Goal
|
||||
|
||||
Bring a new machine to a usable Codex development state with minimal local-only setup.
|
||||
|
||||
## Local-only prerequisites
|
||||
|
||||
Not stored in the repo:
|
||||
- Codex authentication
|
||||
- personal shell setup
|
||||
- secrets/API keys
|
||||
- local editor preferences
|
||||
|
||||
## Repository bootstrap
|
||||
|
||||
1. Clone the repository
|
||||
2. Checkout `develop`
|
||||
3. Read:
|
||||
- AGENTS.md
|
||||
- docs/WORKFLOW.md
|
||||
- docs/TASK_TEMPLATE.md
|
||||
4. Ensure Codex can see:
|
||||
- AGENTS.md
|
||||
- .codex/config.toml
|
||||
- .codex/agents/*
|
||||
- .agents/skills/*
|
||||
|
||||
## Validation checklist
|
||||
|
||||
A machine is considered ready when:
|
||||
- repo is cloned
|
||||
- correct branch is checked out
|
||||
- Codex authentication is working
|
||||
- AGENTS.md is present at repo root
|
||||
- .codex/config.toml is present
|
||||
- task branches can be created from develop
|
||||
25
docs/TASK_TEMPLATE.md
Normal file
25
docs/TASK_TEMPLATE.md
Normal file
@ -0,0 +1,25 @@
|
||||
# Task Template
|
||||
|
||||
Use this structure for Codex implementation tasks.
|
||||
|
||||
## Required opening
|
||||
|
||||
- confirm branch strategy
|
||||
- name the branch to use
|
||||
- state whether remote update succeeded or local state is being used
|
||||
|
||||
## Required execution structure
|
||||
|
||||
1. files to change
|
||||
2. short design explanation
|
||||
3. code/doc/test changes
|
||||
4. commit message
|
||||
5. merge target
|
||||
6. stop
|
||||
|
||||
## Constraints
|
||||
|
||||
- no work on main
|
||||
- no work on develop
|
||||
- no history rewrite
|
||||
- no broadening scope without approval
|
||||
33
docs/WORKFLOW.md
Normal file
33
docs/WORKFLOW.md
Normal file
@ -0,0 +1,33 @@
|
||||
# Workflow
|
||||
|
||||
## Branch policy
|
||||
|
||||
Protected branches:
|
||||
- main
|
||||
- develop
|
||||
|
||||
Normal task flow:
|
||||
1. checkout develop
|
||||
2. create feature/<task-name>
|
||||
3. implement the task
|
||||
4. commit changes
|
||||
5. merge feature branch into develop
|
||||
6. delete feature branch when appropriate
|
||||
|
||||
## When to use an umbrella branch
|
||||
|
||||
Use an umbrella branch only for a large coordinated effort that spans multiple dependent feature branches.
|
||||
|
||||
If used, document:
|
||||
- why it exists
|
||||
- its exact name
|
||||
- which child branches merge into it
|
||||
- when it is expected to merge back into develop
|
||||
|
||||
## Task discipline
|
||||
|
||||
Each task should:
|
||||
- have one clear goal
|
||||
- have one task branch
|
||||
- end with a commit and merge target confirmation
|
||||
- not silently include unrelated cleanup
|
||||
18
scripts/doctor.sh
Normal file
18
scripts/doctor.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "== Repo doctor =="
|
||||
|
||||
test -f AGENTS.md && echo "AGENTS.md: OK" || { echo "AGENTS.md: MISSING"; exit 1; }
|
||||
test -f .codex/config.toml && echo ".codex/config.toml: OK" || { echo ".codex/config.toml: MISSING"; exit 1; }
|
||||
test -d .codex/agents && echo ".codex/agents: OK" || { echo ".codex/agents: MISSING"; exit 1; }
|
||||
test -d docs && echo "docs/: OK" || { echo "docs/: MISSING"; exit 1; }
|
||||
|
||||
branch="$(git rev-parse --abbrev-ref HEAD)"
|
||||
echo "Current branch: ${branch}"
|
||||
|
||||
if [[ "${branch}" == "main" || "${branch}" == "develop" ]]; then
|
||||
echo "Warning: create a task branch before making changes."
|
||||
fi
|
||||
|
||||
echo "Doctor completed."
|
||||
Reference in New Issue
Block a user