chore: use Luna medium for PR poller (#3647)
This commit is contained in:
@@ -76,9 +76,10 @@ Codex subagents inherit the parent sandbox policy and live runtime overrides. A
|
||||
|
||||
Use read-only sandbox for review, exploration, and security agents. Use write access only for implementers or fixers.
|
||||
|
||||
Kandev maintains only the read-only `.codex/agents/pr-poller.toml`, using Codex
|
||||
Spark for an explicitly user-authorized PR wait. Other project-local agents
|
||||
require the user's explicit request and cost approval.
|
||||
Kandev maintains only the read-only `.codex/agents/pr-poller.toml`, using
|
||||
GPT-5.6 Luna at medium reasoning effort for an explicitly user-authorized PR
|
||||
wait. Other project-local agents require the user's explicit request and cost
|
||||
approval.
|
||||
|
||||
## Conversion Notes
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name = "pr-poller"
|
||||
description = "Read-only GPT-5.3 Codex Spark monitor for a user-authorized wait on PR CI or review updates."
|
||||
model = "gpt-5.3-codex-spark"
|
||||
model_reasoning_effort = "low"
|
||||
description = "Read-only GPT-5.6 Luna monitor for a user-authorized wait on PR CI or review updates."
|
||||
model = "gpt-5.6-luna"
|
||||
model_reasoning_effort = "medium"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Poll one named GitHub PR and return a compact status report to the primary
|
||||
|
||||
@@ -98,6 +98,18 @@ function pathExemption(pathname) {
|
||||
if (/\.(?:md|mdx|markdown)$/i.test(pathname)) {
|
||||
return 'Markdown file';
|
||||
}
|
||||
if (/^\.codex\/agents\/[^/]+\.toml$/.test(pathname)) {
|
||||
return 'Codex agent definition';
|
||||
}
|
||||
if (pathname === '.codex/config.toml') {
|
||||
return 'Codex configuration';
|
||||
}
|
||||
if (pathname === '.claude/settings.json') {
|
||||
return 'Claude configuration';
|
||||
}
|
||||
if (/^\.cursor\/rules\/[^/]+\.mdc$/.test(pathname)) {
|
||||
return 'Cursor rule';
|
||||
}
|
||||
if (/_test\.go$/i.test(pathname)) {
|
||||
return 'Go test file';
|
||||
}
|
||||
|
||||
@@ -39,6 +39,25 @@ test('recognized documentation-only paths are exempt', () => {
|
||||
assert.equal(result.exemptPaths.length, 9);
|
||||
});
|
||||
|
||||
// @covers AC-CI-PR-DOCS-001.2
|
||||
test('recognized harness configuration paths are exempt', () => {
|
||||
const result = validator.classifyChangedFiles([
|
||||
{ filename: '.codex/agents/pr-poller.toml', status: 'modified' },
|
||||
{ filename: '.codex/config.toml', status: 'modified' },
|
||||
{ filename: '.claude/settings.json', status: 'modified' },
|
||||
{ filename: '.cursor/rules/kandev-harness.mdc', status: 'modified' },
|
||||
]);
|
||||
|
||||
assert.equal(result.requiresCoverage, false);
|
||||
assert.deepEqual(result.triggeringPaths, []);
|
||||
assert.deepEqual(result.exemptPaths, [
|
||||
'.codex/agents/pr-poller.toml',
|
||||
'.codex/config.toml',
|
||||
'.claude/settings.json',
|
||||
'.cursor/rules/kandev-harness.mdc',
|
||||
]);
|
||||
});
|
||||
|
||||
// @covers AC-CI-PR-DOCS-001.3
|
||||
test('shipped files and unsupported test-like paths require coverage', () => {
|
||||
const result = validator.classifyChangedFiles([
|
||||
|
||||
@@ -20,6 +20,8 @@ Other changes require a changed work order linked to a plan, requirements, accep
|
||||
Previously merged specifications can be referenced without cosmetic edits. Reviewers judge whether changed behavior needs updated contracts.
|
||||
The override persists while the label is present and affects only this check.
|
||||
|
||||
Harness configuration and definitions are exempt when they use the repository's recognized harness formats: Codex agent or config TOML, Claude settings JSON, or Cursor rule MDC. Markdown harness files are covered by the general Markdown exemption. This avoids requiring delivery records for contributor tooling changes while keeping arbitrary JSON, YAML, and other files subject to normal evaluation.
|
||||
|
||||
CI owns this policy. It does not require use of a particular agent or prove that plans were committed before code.
|
||||
The check reports failures before ruleset activation; mandatory merge enforcement requires a separately verified administrator rollout.
|
||||
|
||||
|
||||
@@ -135,3 +135,22 @@ evaluator. Workflow permissions, bounds, policy, and status rules are unchanged.
|
||||
|
||||
Internal docs updated only. This CI implementation change has no public product
|
||||
documentation or screenshot impact.
|
||||
|
||||
### Harness path exemption regression, 2026-09-13
|
||||
|
||||
The path classifier now exempts the non-Markdown harness formats recognized by
|
||||
the repository harness linter: Codex agent and config TOML, Claude settings
|
||||
JSON, and Cursor rule MDC. Markdown harness files remain covered by the
|
||||
existing Markdown exemption. Arbitrary JSON, YAML, scripts, and other files
|
||||
remain subject to coverage.
|
||||
|
||||
TDD evidence:
|
||||
|
||||
- Red: a fixture containing the four supported harness formats required
|
||||
documentation coverage.
|
||||
- Green: the same fixture is exempt, while unrelated implementation paths
|
||||
still trigger coverage.
|
||||
- `node --test .github/scripts/pr-docs.test.cjs`: 51 tests passed.
|
||||
- `python3 scripts/lint-spec-files.test.py`: 36 tests passed.
|
||||
- `python3 scripts/lint-spec-files.py --all`: passed.
|
||||
- `git diff --check`: passed.
|
||||
|
||||
@@ -23,7 +23,7 @@ Contributors can write the artifacts manually; use of the repository harness is
|
||||
#### Acceptance criteria
|
||||
|
||||
- **AC-CI-PR-DOCS-001.1:** Every open pull request shall receive a documentation coverage result, including drafts and forks.
|
||||
- **AC-CI-PR-DOCS-001.2:** A pull request containing only recognized documentation, tests, translation catalogs, or dependency lock changes shall pass without a delivery package.
|
||||
- **AC-CI-PR-DOCS-001.2:** A pull request containing only recognized documentation, tests, translation catalogs, dependency lock, or harness changes shall pass without a delivery package.
|
||||
- **AC-CI-PR-DOCS-001.3:** Other changes shall require an added or modified work order, its plan, and linked requirements and system designs. Changing the title to `fix`, `chore`, or `refactor` shall not exempt the change.
|
||||
- **AC-CI-PR-DOCS-001.4:** Existing plans and specifications shall qualify when the work order references them and they exist in the proposed revision. Contributors shall update contracts when behavior changes, but shall not need meaningless edits to unchanged contracts.
|
||||
- **AC-CI-PR-DOCS-001.5:** A deleted artifact, empty file, unresolved reference, unrelated unlinked document, or work order without requirement and acceptance references shall not satisfy coverage.
|
||||
|
||||
@@ -41,6 +41,7 @@ Initial exemptions:
|
||||
- Go `*_test.go`; JS/TS `*.test.*` and `*.spec.*` restricted to JS/TS source extensions; `apps/web/e2e/**`.
|
||||
- `apps/web/src/locales/<locale>/<namespace>.json`.
|
||||
- Exact lock basenames `pnpm-lock.yaml`, `package-lock.json`, `yarn.lock`, `go.sum`, and `Cargo.lock`.
|
||||
- Recognized non-Markdown harness files: `.codex/agents/*.toml`, `.codex/config.toml`, `.claude/settings.json`, and `.cursor/rules/*.mdc`.
|
||||
|
||||
Do not exempt all JSON, YAML, assets, scripts, package manifests, Rust files, workflows, generated directories, or files containing the word `test`.
|
||||
These can change shipped behavior or repository contracts. Add exemptions later only with concrete fixtures.
|
||||
|
||||
Reference in New Issue
Block a user