[codex] Restructure devkit stacks and feedback templates#2
Conversation
|
Warning Review limit reached
More reviews will be available in 1 minute and 41 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (107)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
29cfa2f to
1142f62
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 29cfa2f800
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
1142f62 to
52bfa14
Compare
There was a problem hiding this comment.
Pull request overview
This PR restructures the devkit to separate language/runtime conventions into stacks/ and opt-in add-ons into extras/, while updating root scripts/workflows/docs to use the new layout (including a shell-first worktree port allocator).
Changes:
- Introduces a framework-neutral TypeScript stack under
stacks/typescript/(TypeScript/Biome/Vitest/Drizzle) and updates root tooling to target it. - Adds an optional Python
uvworkspace stack understacks/python/(FastAPI + shared package + Alembic + validation wrappers), including tests for the Python worktree ports implementation. - Adds a root
scripts/worktree-ports.shand updates scripts/workflows/docs to use the shell implementation by default; moves opt-in workflow/templates intoextras/.
Reviewed changes
Copilot reviewed 52 out of 90 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| stacks/typescript/vitest.config.ts | Adds Vitest configuration for the TypeScript stack. |
| stacks/typescript/tsconfig.json | Adds TypeScript compiler settings for the stack. |
| stacks/typescript/tests/index.test.ts | Adds a basic Vitest unit test for stack utilities. |
| stacks/typescript/src/index.ts | Adds apiBaseUrl helper used by stack conventions/tests. |
| stacks/typescript/src/db/schema.ts | Adds a minimal Drizzle schema example. |
| stacks/typescript/pnpm/README.md | Documents how to use the pnpm alternate for the TypeScript stack. |
| stacks/typescript/pnpm/pnpm-workspace.yaml | Updates pnpm workspace package path to the new stack layout. |
| stacks/typescript/pnpm/package.json | Updates pnpm alternate scripts/paths to target stacks/typescript. |
| stacks/typescript/pnpm/ci-web-job.yml | Adds a pnpm CI job fragment for the TypeScript stack. |
| stacks/typescript/package.json | Defines the TypeScript stack package and its scripts/deps. |
| stacks/typescript/drizzle.config.ts | Adds Drizzle Kit configuration for stack migrations. |
| stacks/python/tests/test_worktree_ports.py | Adds tests for the Python worktree port allocator. |
| stacks/python/scripts/worktree-ports.py | Implements Python worktree-port allocation + env/exec helpers. |
| stacks/python/scripts/typecheck.sh | Adds Python stack mypy wrapper (uv-locked). |
| stacks/python/scripts/test.sh | Adds Python stack pytest wrapper (uv-locked). |
| stacks/python/scripts/lint.sh | Adds Python stack ruff lint wrapper (uv-locked). |
| stacks/python/scripts/format.sh | Adds Python stack ruff format wrapper (uv-locked). |
| stacks/python/scripts/dev.sh | Adds Python stack dev entrypoint (uvicorn + ports). |
| stacks/python/scripts/check-all.sh | Adds Python stack “check all” wrapper. |
| stacks/python/README.md | Documents when/how to apply the Python stack. |
| stacks/python/pyproject.toml | Updates uv cooldown config to exclude-newer = "P7D". |
| stacks/python/packages/shared/src/example_shared/settings.py | Adds Pydantic settings for the Python stack. |
| stacks/python/packages/shared/src/example_shared/schemas.py | Adds shared Pydantic schemas (health response). |
| stacks/python/packages/shared/src/example_shared/observability.py | Adds shared logging/observability helpers. |
| stacks/python/packages/shared/src/example_shared/init.py | Adds shared package module docstring. |
| stacks/python/packages/shared/pyproject.toml | Defines the shared Python package metadata/deps. |
| stacks/python/apps/api/tests/test_postgres_integration.py | Adds optional integration test for Postgres connectivity. |
| stacks/python/apps/api/tests/test_health.py | Adds API health endpoint test. |
| stacks/python/apps/api/src/example_api/main.py | Adds minimal FastAPI app factory + uvicorn runner. |
| stacks/python/apps/api/src/example_api/db.py | Adds SQLAlchemy base/metadata wiring. |
| stacks/python/apps/api/src/example_api/init.py | Adds API package docstring. |
| stacks/python/apps/api/pyproject.toml | Defines API package metadata/deps + script entrypoint. |
| stacks/python/apps/api/migrations/script.py.mako | Adds Alembic migration template. |
| stacks/python/apps/api/migrations/env.py | Adds Alembic env wiring (settings-driven DB URL). |
| stacks/python/apps/api/alembic.ini | Adds Alembic configuration. |
| skills/508-devkit/SKILL.md | Updates skill guidance to match stacks/extras layout. |
| SECURITY.md | Updates uv cooldown documentation for the new P7D format. |
| scripts/worktree-ports.sh | Adds shell-first worktree-port allocator and env/exec helpers. |
| scripts/typecheck.sh | Makes root typecheck wrapper run from repo root and use Bun. |
| scripts/test.sh | Makes root test wrapper run from repo root and use Bun. |
| scripts/lint.sh | Makes root lint wrapper run from repo root and use Bun. |
| scripts/format.sh | Makes root format wrapper run from repo root and use Bun. |
| scripts/docker-compose.sh | Switches compose env generation to the shell port helper. |
| scripts/dev.sh | Switches dev startup to the TypeScript stack + shell port helper. |
| scripts/check-all.sh | Updates root “check all” wrapper for the new default stack setup. |
| README.md | Updates high-level repo layout/docs for stacks/extras and shell ports. |
| pnpm-workspace.example.yaml | Updates example pnpm workspace path to stacks/typescript. |
| package.json | Updates workspaces/scripts to target stacks/typescript and shell ports. |
| llms.txt | Updates agent-facing summary to reflect stacks/extras + shell ports. |
| extras/todo-to-issue/todo-to-issue.yml.example | Adds opt-in TODO→issue workflow example under extras. |
| extras/todo-to-issue/README.md | Documents the opt-in TODO→issue workflow and risks. |
| extras/github/README.md | Documents opt-in GitHub add-ons (CODEOWNERS/discussions). |
| extras/github/community/DISCUSSION_TEMPLATE/questions.yml | Adds opt-in discussion template example. |
| extras/github/CODEOWNERS.example | Provides a CODEOWNERS starter template under extras. |
| extras/dockerfiles/README.md | Documents opt-in Dockerfile examples. |
| extras/dockerfiles/Dockerfile.worker.example | Adds worker Dockerfile example. |
| extras/dockerfiles/Dockerfile.web-typescript.example | Updates Dockerfile example to copy/build stacks/typescript. |
| extras/dockerfiles/Dockerfile.api.example | Adds API Dockerfile example. |
| extras/devcontainer/README.md | Documents opt-in devcontainer. |
| extras/devcontainer/devcontainer.json.example | Adds example devcontainer configuration. |
| extras/dev-scripts/worktree-ports.mjs | Minor import ordering tweak in JS worktree ports helper example. |
| extras/dev-scripts/README.md | Updates guidance: shell for dependency-free deterministic logic. |
| extras/dev-scripts/dev.ts | Updates dev script example to run stacks/typescript instead of apps/web. |
| docs/template-proposal.md | Updates proposed layout and default/optional stack guidance. |
| docs/supply-chain.md | Updates uv cooldown guidance to P7D and lockfile note. |
| docs/pattern-report.md | Updates narrative to match stacks/extras + shell ports. |
| docs/github-workflows.md | Updates workflow guidance (permissions, dependency review opt-in, paths). |
| docs/frontend.md | Updates frontend conventions to reference stacks/typescript. |
| docs/development.md | Updates local dev docs to use shell worktree ports. |
| docs/agent-walkthrough.md | Updates agent walkthrough to reference stacks/extras paths. |
| CONTRIBUTING.md | Updates contribution guidance for stacks/extras structure. |
| CLAUDE.md | Updates agent guidance to prefer repo scripts + bun/uv based on presence. |
| bun.lock | Updates workspace path for the TypeScript stack rename/move. |
| biome.json | Updates Biome ignore list to include .claude. |
| AGENTS.md | Updates agent rules for stacks/extras + shell worktree ports. |
| .pre-commit-config.yaml | Removes Python hooks and updates Biome hook file targeting. |
| .gitignore | Ignores .claude/. |
| .github/workflows/security.yml | Tightens permissions, updates gitleaks invocation, makes dependency review opt-in. |
| .github/workflows/ci.yml | Updates jobs to typescript/python stacks, adds aggregate ci-passed, reduces permissions. |
| .github/PULL_REQUEST_TEMPLATE.md | Replaces placeholder bullet with guidance text. |
| .dockerignore | Adds .claude to Docker ignore list. |
| .context/runbooks/local-dev.md | Updates local dev runbook to use shell worktree ports. |
| .context/decisions/tooling.md | Updates uv cooldown decision note + workflow permission guidance. |
Comments suppressed due to low confidence (1)
stacks/typescript/pnpm/package.json:13
- Same issue as the root
package.json: in this pnpm alternate,lintandformat:checkboth runbiome check ., which makesformat:checkmisleading and can lead to redundant CI work.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 52bfa14196
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
52bfa14 to
060fa69
Compare
There was a problem hiding this comment.
💡 Codex Review
508-devkit/extras/dockerfiles/Dockerfile.api.example
Lines 9 to 11 in 060fa69
When a project uses this optional API Dockerfile after the stack move, the build context no longer has root pyproject.toml, uv.lock, apps/api, or packages/shared—those files now live under stacks/python (repo-wide search only finds stacks/python/pyproject.toml and stacks/python/uv.lock). As written, docker build -f extras/dockerfiles/Dockerfile.api.example . fails at these COPY steps instead of producing the Python API image, so the example needs to copy from stacks/python/... or set the build context accordingly.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
060fa69 to
aabb5ff
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aabb5ff9aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
aabb5ff to
9f4b967
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9f4b967778
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
9f4b967 to
a4a1c2b
Compare
a4a1c2b to
5c19e36
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5c19e36600
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 82 out of 107 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
stacks/typescript/pnpm/ci-web-job.yml:6
- This CI job fragment still uses a moving tag for
actions/checkout(@v5). The devkit’s primary workflows pin actions to commit SHAs (for example.github/workflows/ci.yml:30). For consistency with that supply-chain policy, pin checkout (and the other actions used in this fragment) to specific commit SHAs.
486e7cb to
3598f3b
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 82 out of 107 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
stacks/python/scripts/worktree-ports.py:158
ports_for_base()usesoffsets or HASH_OFFSETS, which treats an explicitly provided empty dict the same asNoneand silently falls back to default offsets. Since the signature allows callers to pass an offsets dict, the defaulting should only happen whenoffsets is None(and invalid/partial dicts should fail fast).
3598f3b to
be5f656
Compare
be5f656 to
84c9257
Compare
84c9257 to
20d878c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 82 out of 107 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (2)
stacks/python/scripts/worktree-ports.py:205
WORKTREE_PRIMARY_PORTcan overwriteAPI_PORT/WEB_PORTwith a value that collides with another generated port, producing duplicate host ports (and confusing downstream failures). It would be safer to validate that all generated ports remain unique after applying the primary-port override and raise a clear error if not.
stacks/typescript/pnpm/ci-web-job.yml:13- This job snippet uses floating action tags (e.g.,
actions/checkout@v5). In this repo, the root workflows pin actions to commit SHAs (e.g.,.github/workflows/ci.ymlusesactions/checkout@93cb6e...). To keep the snippet aligned with the devkit's supply-chain posture, pin these actions to SHAs as well.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20d878ce3f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
20d878c to
d5bf5a0
Compare
d5bf5a0 to
4d5f3d2
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4d5f3d297c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
4d5f3d2 to
73074f9
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 84 out of 109 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
stacks/typescript/pnpm/ci-web-job.yml:16
- This CI job fragment uses floating action tags (
actions/checkout@v5,pnpm/action-setup@v4,actions/setup-node@v5). Elsewhere in the devkit (e.g..github/workflows/ci.yml) actions are pinned to commit SHAs. Pinning here too will keep the copy/paste fragment aligned with the devkit's workflow hardening approach.
Summary
stacks/for language/runtime conventions andextras/for optional workflow/tooling add-ons.stacks/typescript/and Python API/shared-package conventions intostacks/python/with its own validation scripts.scripts/worktree-ports.shas the root default while keeping the Python implementation in the Python stack.Validation
bun install --frozen-lockfile./scripts/check-all.shuv sync --locked && ./scripts/check-all.shfromstacks/pythongit diff --check.github/workflows/ci.ymland.github/workflows/security.ymlwith PyYAML