Repository navigation
Conversation
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
…in-flight runs Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
…fallbacks Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
…flag Assisted-by: Claude Code:claude-opus-5-5
Assisted-by: Claude Code:claude-opus-5-5
- link compares repos ignoring case everywhere (Env.Repos, PR.Repo, Deploy.Revisions keys) through one revision lookup. - A deploy carries a repo only with a non-empty SHA for it. - rules flags a merged repo that no Env.Repos names: yellow deploy unknown, "<repo> not deployed by any configured environment", no slot target. It is skipped when no Env sets Repos (history fallback). - Ticket.StatusCategory is typed and holds Jira's statusCategory.key (new, indeterminate, done). - DoneGrace <= 0 turns the Done check off, like the other thresholds. - Docs: what a Deploy is, adapter ordering and filtering, Env.Repos required in practice. Assisted-by: Claude Code:claude-opus-5-5
- PR.Stranded: link sets it (with StackPending) on a PR merged into a branch whose own PR had already merged, or into a branch with no live PR. Waiting on an open base PR is not stranded. rules raises a red FlagStranded, "PR #n merged into a dead branch", targeting the PR. - Batched rollback: when the newest success does not contain a PR and no older success carried its exact SHA, link walks older successes newest to oldest; the first that contains it makes the slot RolledBack (unless a newer run contains it). The walk stops at a compare that cannot answer. - A Done ticket with no PRs (closed ones ignored) gets no status mismatch and Evaluate drops it: nothing to ship. Assisted-by: Claude Code:claude-opus-5-5
Runs link.Link, link.Slots and rules.Evaluate on synthetic chains across two accounts (stage-acct, prod-acct), each with Test and Production Envs: squash merge everywhere, approval wait, missing prod history, rollback, batched rollback, a landed stack, a stranded stack PR and a repo case mismatch. Assisted-by: Claude Code:claude-opus-5-5
A chain with a merged repo that no configured Env deploys no longer reads "in prod" even when every applicable prod Env has the rest. Same guard as the unclaimed-repo flag: skipped when no Env sets Repos. PR.Stranded doc now says callers must pass the PR for each base branch. Assisted-by: Claude Code:claude-opus-5-5
Same workflow and linters as jira-green, plus a gofmt check. Assisted-by: Claude Code:claude-opus-5-5
Same change as the other studio repos; the runner image has build-essential, so go test -race works. Assisted-by: Claude Code:claude-opus-5-5
The repo is public, and the ger3 runner group is private-repos only. Assisted-by: Claude Code:claude-opus-5-5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 1 of the app-green v1 plan: the pure core, with no network code. Design, spike and plan are in #2.
What's here
internal/model: shared types (tickets, PRs, environments, deploys, slots, chains, stages, flags).internal/link: Jira keys in PR titles/branches, ticket-to-PR linking with stacked PRs, and per-environment slots ("is this change running here now?").internal/rules: chain stage, needs-action flags in a fixed order, sorting and fading.internal/e2e: end-to-end tests from linking through rules on realistic synthetic chains.100 tests, race-clean. Every task went through spec and code-quality review; later work used one-test-at-a-time TDD.
Decisions made during review (they supersede the plan's Phase 1 code)
partial_prod_after(4h) gets a yellow flag targeting the missing environment.Env.Repos). Missing history, or a merged repo no environment deploys, shows yellow deploy unknown and keeps the row out of "in prod".statusCategory.key. To Do or In Progress with merged work is a status mismatch. Done tickets with no PRs are hidden.Assisted-by: Claude Code:claude-opus-5-5