Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 0 additions & 81 deletions .github/workflows/claude.yml

This file was deleted.

46 changes: 46 additions & 0 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: PR Checks

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
push:
branches: [main]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: pr-checks-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
workflows:
name: Workflow validation
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Install actionlint
run: go install github.com/rhysd/actionlint/cmd/actionlint@v1.7.12

- name: Validate GitHub Actions workflows
run: '"$(go env GOPATH)/bin/actionlint" -color'

macos:
name: macOS tests and build
runs-on: macos-15
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Run Swift regression tests
run: bash scripts/run-tests.sh

- name: Build and smoke-launch universal macOS app
run: ./scripts/verify.sh
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,5 @@ notes/
.agents/
skills-lock.json
AGENTS.md
# Root guidance is shared with Codex code review.
!/AGENTS.md
22 changes: 22 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# CodexIsland

Read [CLAUDE.md](CLAUDE.md) before editing this repository. It contains the
shared release, credential-handling, build, documentation, and style rules.

## Code Review Rules

- Report actionable P0-P2 bugs introduced by the PR, with the triggering scenario,
impact, and a precise changed-line reference. Skip style nits and speculative
refactors. Distinguish unavailable review services from failing app tests.
- Preserve Sparkle update compatibility: the signing key, monotonic semver,
bundle identity, signed appcast generation, and CI-owned Homebrew sync must
continue to work for existing installations. A normal version bump is not
itself a defect.
- Claude credentials are owned by Claude Code. Flag app-side OAuth refresh
calls or credential-store writes; never recommend adding them. Re-reading
credentials and letting the CLI refresh its own credentials are allowed.
Preserve the documented usage headers and minimum five-minute polling.
- Check display changes, notched-screen placement, idle and Low Power behavior,
concurrency, and provider error states when affected. Keep missing quota
readings distinct from a real zero, and API-equivalent value distinct from
actual billing. Persistent usage history must survive missing source logs.
14 changes: 14 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,20 @@ open build/CodexIsland.app

No Xcode project, no SwiftPM. Just `swiftc Sources/**/*.swift`.

## Pull request checks and reviews

Every pull request runs the Swift regression suite, builds and smoke-launches
the universal macOS app, and validates the GitHub Actions workflows. These checks run again after
new commits and also run on `main`. Forks use the same checks without repository
secrets. Run `bash scripts/run-tests.sh` and `./scripts/verify.sh` locally before opening
a PR; workflow edits can be checked with `actionlint`.

Codex reviews pull requests through the GitHub integration and follows the
`Code Review Rules` in `AGENTS.md`. To request another review, comment
`@codex review` on the PR. Resolve findings and wait for checks on the latest
commit before merging. A review service being unavailable does not establish
whether the app builds or passes tests.

## Code style

- **Lowercase Conventional Commits.** `feat(scope): summary`, `fix(scope): summary`, `chore: summary`. Body explains the *why*, not the *what*. The diff is the what. See git log for examples.
Expand Down