Assign code content classifier to Claude
This commit is contained in:
parent
09292823e4
commit
29faab8a97
@ -87,11 +87,12 @@ Codex handles the request only under an existing acceptance-criteria task with m
|
||||
|
||||
## Delivery waves
|
||||
|
||||
1. Codex completes OAuth core, TASK-004 API foundations, and TASK-005 repository/ref selection.
|
||||
2. After TASK-005's reviewed contract commit, Claude builds TASK-006 in a separate worktree while Codex builds TASK-009 history/diff contracts.
|
||||
3. After both are reviewed, Claude builds TASK-007 while Codex builds TASK-010 work-item contracts and integrates TASK-006.
|
||||
4. After TASK-010's reviewed contract commit, Claude builds TASK-008 while Codex verifies merged history/navigation behavior.
|
||||
5. Codex performs final integration and all repository-wide gates.
|
||||
1. Claude may immediately build TASK-006A from freeze commit `0929282` while Codex builds TASK-002A and TASK-002B.
|
||||
2. Codex completes TASK-004 API foundations and TASK-005 repository/ref selection; TASK-006A is reviewed and integrated independently.
|
||||
3. After TASK-005's reviewed contract commit, Claude builds the remaining TASK-006 UI in a separate worktree while Codex builds TASK-009 history/diff contracts.
|
||||
4. After both are reviewed, Claude builds TASK-007 while Codex builds TASK-010 work-item contracts and integrates TASK-006.
|
||||
5. After TASK-010's reviewed contract commit, Claude builds TASK-008 while Codex verifies merged history/navigation behavior.
|
||||
6. Codex performs final integration and all repository-wide gates.
|
||||
|
||||
## Cross-review
|
||||
|
||||
|
||||
18
prompts/claude-task-006a.md
Normal file
18
prompts/claude-task-006a.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Claude kickoff: TASK-006A
|
||||
|
||||
Work only on TASK-006A in a separate worktree and a `claude/` branch created from the Codex assignment commit containing this prompt. The shared domain contract is frozen at commit `0929282`; verify that the relevant domain files have not changed since that commit.
|
||||
|
||||
Read completely, in order:
|
||||
|
||||
1. `AGENTS.md`
|
||||
2. `CLAUDE.md`
|
||||
3. `docs/product.md`
|
||||
4. `docs/architecture.md`
|
||||
5. `docs/collaboration.md`
|
||||
6. `docs/workstreams.md`
|
||||
7. `tasks/003-repository-browser-foundation.md`
|
||||
8. `tasks/006a-code-content-classifier.md`
|
||||
|
||||
You are the implementer for this task and Codex is the reviewer. Your only writable paths are the three paths listed in TASK-006A. Do not edit Gradle, domain, data, Android resources, manifests, navigation, other tasks, or other feature packages.
|
||||
|
||||
Implement the smallest pure Kotlin classifier satisfying every acceptance criterion. Run all required checks, inspect the actual diff, update only TASK-006A evidence/review sections, commit on a `claude/` branch, and hand off the exact commit to Codex. If the frozen contracts are insufficient, stop and submit the structured shared-contract request from `docs/workstreams.md`; do not modify shared files.
|
||||
@ -1,6 +1,6 @@
|
||||
# TASK-006: Browse trees and source code by ref
|
||||
|
||||
Status: planned — depends on TASK-005
|
||||
Status: planned — depends on TASK-005 and TASK-006A
|
||||
Owner: Claude
|
||||
Reviewer: Codex
|
||||
|
||||
|
||||
57
tasks/006a-code-content-classifier.md
Normal file
57
tasks/006a-code-content-classifier.md
Normal file
@ -0,0 +1,57 @@
|
||||
# TASK-006A: Classify source content safely
|
||||
|
||||
Status: ready — shared domain contract frozen at commit `0929282`
|
||||
Owner: Claude
|
||||
Reviewer: Codex
|
||||
|
||||
## Outcome
|
||||
|
||||
Classify already-loaded repository content into bounded text, binary, Git LFS pointer, unsupported encoding, or oversized states so the future code viewer never blindly decodes or renders arbitrary bytes.
|
||||
|
||||
## Contract freeze
|
||||
|
||||
- Shared domain contract commit: `0929282`.
|
||||
- Claude starts from the later Codex assignment commit that adds this task and prompt; no shared domain file may differ from `0929282` without an approved contract change.
|
||||
- Input contracts: `SourceContent`, `SourceFile`, `RepositoryPath`, and `RepositoryRef` from TASK-003.
|
||||
- This task must not change the frozen domain contracts. Required changes use the request format in `docs/workstreams.md`.
|
||||
|
||||
## Writable paths
|
||||
|
||||
- `app/src/main/java/com/ubisam/ubgitea/feature/codebrowser/content/`
|
||||
- `app/src/test/java/com/ubisam/ubgitea/feature/codebrowser/content/`
|
||||
- `tasks/006a-code-content-classifier.md` evidence and review sections only
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] Classification results are immutable and distinguish text, binary, Git LFS pointer, unsupported encoding, and oversized content.
|
||||
- [ ] Maximum input bytes, rendered characters, and rendered lines are constructor-injected positive limits.
|
||||
- [ ] Oversized input is rejected before text decoding and exposes only safe metadata, not decoded content.
|
||||
- [ ] Binary detection includes NUL bytes and does not convert arbitrary bytes to replacement characters.
|
||||
- [ ] Text decoding uses a strict UTF-8 decoder that reports malformed or unmappable input.
|
||||
- [ ] A Git LFS pointer is recognized only from its canonical version line and required object ID/size fields within configured bounds.
|
||||
- [ ] Rendered text is explicitly marked truncated when character or line limits are exceeded.
|
||||
- [ ] No Android, network, persistence, token, logging, or write-operation dependency appears in the package.
|
||||
- [ ] Tests cover empty/ASCII/Korean text, CRLF, malformed UTF-8, NUL/binary, valid and malformed LFS pointers, exact/over byte limits, line limits, character limits, and defensive immutability.
|
||||
|
||||
## Security and privacy
|
||||
|
||||
- Test fixtures must contain only synthetic public content.
|
||||
- Classification errors must not include source content in messages.
|
||||
- The classifier does not persist content or place it on the clipboard.
|
||||
|
||||
## Required checks
|
||||
|
||||
```text
|
||||
./gradlew assembleDebug
|
||||
./gradlew testDebugUnitTest
|
||||
./gradlew lintDebug
|
||||
./gradlew testDebugUnitTest --tests "com.ubisam.ubgitea.feature.codebrowser.content.*"
|
||||
```
|
||||
|
||||
## Handoff
|
||||
|
||||
Claude must provide the exact branch/commit, changed paths, acceptance-criteria evidence, check results, open findings, and a request for Codex review. No integration or shared-file edit is authorized by this task.
|
||||
|
||||
## Evidence
|
||||
|
||||
Pending Claude implementation.
|
||||
Loading…
x
Reference in New Issue
Block a user