Task
Create a safety tag on clean-pr, cherry-pick the two implementation commits (14 + 15) from phase-6 to clean-pr, push to the upstream fork via --force-with-lease, and update PR #136's description. This is the final delivery step — it makes the Phase 6 work visible to the upstream reviewer (jahow).
ROADMAP Reference: Phase 6, Task 10b — Rebase to clean-pr and Push to Upstream (~0.5 hours, Low complexity)
Implementation Branch: phase-6 → clean-pr
Files to Create or Modify
| File |
Action |
Purpose |
| (none) |
N/A |
This task creates no new files and modifies no source code — it performs git operations and updates PR metadata |
This is a git operations + PR update task, not a code authoring task.
Blueprint Reference
Scope — What to Implement
Point-of-No-Return Checklist (PRE-FLIGHT)
Before ANY git operations on clean-pr, confirm every item:
If any item above is unchecked, STOP — return to Task 10a.
Step 1: Create Safety Tag
git checkout clean-pr
git tag pre-refactor-backup HEAD
This preserves the current clean-pr HEAD (3061c68, 13 commits above upstream/main) so it can be restored if the cherry-pick causes problems.
Rollback command: git push clean-fork pre-refactor-backup:clean-pr --force-with-lease
Step 2: Cherry-Pick Implementation Commits
# Cherry-pick ONLY the two implementation commits (NOT research docs)
git cherry-pick <commit-14-hash> <commit-15-hash>
- Commit 14: Formatting + ESLint fixes (Phase A —
style(csapi): apply Prettier and fix ESLint...)
- Commit 15: Architecture refactoring (Phase B —
refactor(csapi): decouple from endpoint...)
Important: Do NOT cherry-pick research/planning commits — only code-change commits move to clean-pr.
Step 3: Verify Commit Count
git log --oneline upstream/main..clean-pr
Expected: Exactly 15 commits (13 existing + 2 new).
If the count is wrong:
- Too few → cherry-pick missed a commit
- Too many → extra commits picked up; reset and retry
Step 4: Quick Re-Verification on clean-pr
# Verify the cherry-picked code still passes on clean-pr
npm run typecheck
npm run test:browser
npm run test:node
All must exit 0. This confirms the cherry-pick applied cleanly.
Step 5: Push to Upstream Fork
git push --force-with-lease clean-fork clean-pr
Step 6: Update PR #136 Description
Update the PR description to document:
- The new
"./csapi" sub-path consumer API
- The 2-commit structure (formatting + architecture)
- The 12-gate verification summary
- Respond to jahow's review thread confirming the requirements are met
Failure Protocol
| Scenario |
Action |
| Cherry-pick conflict |
Abort cherry-pick, investigate on phase-6, fix, re-attempt |
Tests fail on clean-pr |
Reset clean-pr to pre-refactor-backup, fix on phase-6, re-attempt |
| Wrong commit count |
Reset clean-pr to pre-refactor-backup, verify commit hashes, re-attempt |
| Force-push rejected |
Check if the remote changed unexpectedly; use --force-with-lease (not --force) |
In all failure cases: The pre-refactor-backup tag provides a safe rollback point.
Testing Requirements
- Re-run
typecheck, test:browser, test:node on clean-pr after cherry-pick (Step 4)
- No new tests — this task moves existing verified commits to a new branch
Scope — What NOT to Touch
- ❌ Do NOT modify any source files — if cherry-pick fails, investigate and fix on
phase-6
- ❌ Do NOT use
git push --force — always use --force-with-lease
- ❌ Do NOT cherry-pick research/planning commits — only Commits 14 and 15
- ❌ Do NOT delete the
pre-refactor-backup tag — it is the rollback safety net
- ❌ Do NOT modify the
phase-6 branch — all changes happen on clean-pr
- ❌ Do NOT change any CSAPI business logic
- ❌ Do NOT run verification gates from scratch — Task 10a already confirmed them; Step 4 is a quick re-check only
Acceptance Criteria
Dependencies
Blocked by: Task 10a — Boundary Verification and Litmus Test (all 12 gates must pass)
Blocks: Nothing — this is the final delivery task in Phase 6
Operational Constraints
⚠️ MANDATORY: Before starting work on this issue, review docs/governance/AI_OPERATIONAL_CONSTRAINTS.md.
For Phase 6 issues: Review the P6 Implementation Guide §11 for the branching strategy and rebase path.
Key constraints for this task:
- Precedence: OGC specifications → AI Collaboration Agreement → This issue description → Existing code → Conversational context
- No code fixes on clean-pr: If cherry-pick fails or tests fail, return to
phase-6 to fix, then re-attempt
- Safety first: Always create
pre-refactor-backup tag BEFORE any cherry-pick or force-push
- Force-with-lease only: Never use
--force without --with-lease
Phase 6 Task-Specific Scope Boundaries
- Task 10a must pass ALL 12 verification gates before Task 10b begins
- Task 10b (this task) must NOT modify source code — git operations and PR metadata only
- Split rationale: Task 10a is fully local and reversible; Task 10b modifies remote state visible to the upstream reviewer. See Task Granularity Review.
References
Primary References (must read)
Repository Map
| Repository |
Branch |
Role |
ogc-client-CSAPI_2 |
main |
Archive — untouched. Preserves complete Phase 1–5 state. |
ogc-client-CSAPI_2 |
phase-6 |
Implementation workspace. Research docs + implementation commits. |
clean-pr repo |
clean-pr branch |
Contribution-ready fork. 13 commits above upstream/main, HEAD at 3061c68. After this task: 15 commits. |
Rebase Flow
phase-6 branch (ogc-client-CSAPI_2)
├── Research/planning commits (stay here — NOT rebased)
└── Commits 14 + 15 (code changes only)
↓ cherry-pick
clean-pr branch: 15 commits (13 existing + 2 new)
↓ push --force-with-lease
clean-fork remote → PR #136 updated
↓
Draft PR ready for jahow's review
Task
Create a safety tag on
clean-pr, cherry-pick the two implementation commits (14 + 15) fromphase-6toclean-pr, push to the upstream fork via--force-with-lease, and update PR #136's description. This is the final delivery step — it makes the Phase 6 work visible to the upstream reviewer (jahow).ROADMAP Reference: Phase 6, Task 10b — Rebase to
clean-prand Push to Upstream (~0.5 hours, Low complexity)Implementation Branch:
phase-6→clean-prFiles to Create or Modify
This is a git operations + PR update task, not a code authoring task.
Blueprint Reference
Scope — What to Implement
Point-of-No-Return Checklist (PRE-FLIGHT)
Before ANY git operations on
clean-pr, confirm every item:phase-6branch pushed to origin (Task 10a)If any item above is unchecked, STOP — return to Task 10a.
Step 1: Create Safety Tag
This preserves the current
clean-prHEAD (3061c68, 13 commits aboveupstream/main) so it can be restored if the cherry-pick causes problems.Rollback command:
git push clean-fork pre-refactor-backup:clean-pr --force-with-leaseStep 2: Cherry-Pick Implementation Commits
style(csapi): apply Prettier and fix ESLint...)refactor(csapi): decouple from endpoint...)Important: Do NOT cherry-pick research/planning commits — only code-change commits move to
clean-pr.Step 3: Verify Commit Count
Expected: Exactly 15 commits (13 existing + 2 new).
If the count is wrong:
Step 4: Quick Re-Verification on clean-pr
# Verify the cherry-picked code still passes on clean-pr npm run typecheck npm run test:browser npm run test:nodeAll must exit 0. This confirms the cherry-pick applied cleanly.
Step 5: Push to Upstream Fork
--force-with-leaseprevents overwriting unexpected remote changesclean-forkis the remote pointing to the upstream forkSystemTypeUrisname collision between model.ts and constants.ts #136 with the new commitsStep 6: Update PR #136 Description
Update the PR description to document:
"./csapi"sub-path consumer APIFailure Protocol
phase-6, fix, re-attemptclean-prclean-prtopre-refactor-backup, fix onphase-6, re-attemptclean-prtopre-refactor-backup, verify commit hashes, re-attempt--force-with-lease(not--force)In all failure cases: The
pre-refactor-backuptag provides a safe rollback point.Testing Requirements
typecheck,test:browser,test:nodeonclean-prafter cherry-pick (Step 4)Scope — What NOT to Touch
phase-6git push --force— always use--force-with-leasepre-refactor-backuptag — it is the rollback safety netphase-6branch — all changes happen onclean-prAcceptance Criteria
pre-refactor-backuptag created on oldclean-prHEAD (3061c68)clean-prcleanly (no conflicts)git log --oneline upstream/main..clean-prshows exactly 15 commitsnpm run typecheckpasses onclean-prnpm run test:browserpasses onclean-prnpm run test:nodepasses onclean-prgit push --force-with-lease clean-fork clean-prsucceedsSystemTypeUrisname collision between model.ts and constants.ts #136 description updated to document new consumer API and 2-commit structureDependencies
Blocked by: Task 10a — Boundary Verification and Litmus Test (all 12 gates must pass)
Blocks: Nothing — this is the final delivery task in Phase 6
Operational Constraints
Key constraints for this task:
phase-6to fix, then re-attemptpre-refactor-backuptag BEFORE any cherry-pick or force-push--forcewithout--with-leasePhase 6 Task-Specific Scope Boundaries
References
Primary References (must read)
pre-refactor-backup+--force-with-leaseRepository Map
ogc-client-CSAPI_2mainogc-client-CSAPI_2phase-6clean-prrepoclean-prbranchupstream/main, HEAD at3061c68. After this task: 15 commits.Rebase Flow