Skip to content

Agent: make the issue→PR orchestrator repo-independent and de-branded (#63) - #73

Open
MateuszPaulski wants to merge 2 commits into
mainfrom
agent/issue-63
Open

Agent: make the issue→PR orchestrator repo-independent and de-branded (#63)#73
MateuszPaulski wants to merge 2 commits into
mainfrom
agent/issue-63

Conversation

@MateuszPaulski

@MateuszPaulski MateuszPaulski commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Makes the airside-agent issue→PR orchestrator repo-independent and adds the owner-requested process capabilities, per the approved spec (v3) on the issue. All changes live under .claude/ + docs/ — no product source, no changeset.

  • Config-sourced repo/ownerSKILL.md §Config is the single source of REPO/OWNER/PICKUP_LABEL/BRANCH_PREFIX/REVIEW_CAP; every call site now uses placeholder forms (--repo <REPO>, <BRANCH_PREFIX><n>), the GraphQL -F o=…/-F r=… split is derived from REPO, and all six .claude/agents/airside-*.md read REPO/BRANCH from their spawn inputs instead of literals.
  • Recipe extraction — the whole gh/graphql/jq command surface moves verbatim into .claude/skills/airside-agent/references/github.md, keyed by op name (plus new mergeable-check and create-issue recipes); the runbook keeps the algorithm and links each op to its recipe.
  • Provider seam (design only)references/providers.md names the abstract operations (listActionableTasks, createTask, readMergeability, …) with GitHub as the one implementation; Jira later.
  • Merge-conflict PRs are actionable — reconcile reads mergeability (UNKNOWN = retry next tick, never conflicting); CONFLICTING triggers a priority conflicts op → fixer MODE: conflicts (merge-not-rebase, no force-push, lint+tests, Airside-Agent-Conflicts: true trailer as the one-attempt guard; semantic conflicts escalate to blocked + owner note).
  • Filing mode/airside-agent file <description> files one issue inline (no subagent — the interview needs the top-level invocation), per filing-github-issues; the agent label only on explicit owner opt-in.
  • Read-side scriptscripts/tick-scan.sh <REPO> consolidates the per-tick read fan-out into one JSON (verified live: parity with the individual recipes on the current 4 agent issues). Writes stay individual recipes (commit-last ordering is the crash-recovery design).
  • Legacy cleanup — the retired docs/ideas.md/docs/issues.md mentions are dropped from triage/spec-author/builder.
  • ADR — recorded as ADR-0050 (the spec named ADR-0044, but 0044–0047 were taken by other work since the spec was written; at merge time main had landed ADR-0049 and PR Widget: page-level / unanchored comments (start a thread without a pin) #70 claims 0048, so 0050 is the next free number per the newest-last rule). Includes the deferred air-agent rename decision.
  • Follow-up filedAgent: rename the orchestrator to the neutral air-agent namespace #72 (the de-brand rename, owner-coordinated cutover).

Verified: grep gate clean (no Airnauts/airside literal outside §Config / "e.g." text), moved recipe blocks diff-checked against the pre-extraction snippets, tick-scan.sh run live with recipe-parity spot checks, pnpm lint green. The hand-run tick happens post-merge per the spec's Testing section.

Closes #63

🤖 Draft opened by airside-agent — automated build of #63.

…nflicts op, filing mode, tick-scan

Repo/owner now come solely from SKILL.md §Config (placeholder call sites; GraphQL
o/r derived from REPO); the GitHub command surface moves verbatim into
references/github.md as named recipes; references/providers.md documents the
tracker/VCS provider seam (design only); merge-conflict PRs become actionable via
a mergeable-check + a priority conflicts op with fixer MODE: conflicts
(merge-not-rebase, one attempt, then blocked + owner note); /airside-agent file
<description> files an issue inline per filing-github-issues (pickup label only
on explicit opt-in); scripts/tick-scan.sh consolidates the per-tick read fan-out
into one JSON (writes stay individual recipes); the six airside-* agents are
de-hardcoded and the retired docs/ideas.md-/docs/issues.md mentions are dropped.
ADR-0048 records it all (the spec's "ADR-0044" slot was already taken; next
free number used) incl. the deferred air-agent rename.

Closes #63.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015YC2L9GsNmvyjm6VrUJvX1
@MateuszPaulski

Copy link
Copy Markdown
Collaborator Author

🤖 airside-agent reviewb0776be · 4 finding(s)

Sev Location Finding
🟠 high docs/adr.md:1669 ADR-0048 collides with PR #70's claimed number; adr.md conflicts with main — renumber to ADR-0050 during conflict resolution
🟡 medium scripts/tick-scan.sh:33 gh api --paginate --jq '[...]' emits one array per page — breaks --argjson past 100 comments
🟡 medium SKILL.md:299 One-attempt conflicts guard mis-fires on a new conflict against an unchanged head
⚪ low scripts/tick-scan.sh:39 Branch probe deviates from the recipe (https URL vs origin), assumes git credentials

Extraction verified faithful (recipes byte-identical, grep gate clean, tick-scan.sh ran green live). The high (merge main + renumber ADR) is being auto-fixed.

Resolves the docs/adr.md conflict: main landed ADR-0049 (which reserves 0048
for PR #70), so this PR's entry takes the next free slot, ADR-0050, keeping
newest-last order. Updates the SKILL.md cross-references to match. Also fixes
the import-order lint error inherited from main's PanelListView.tsx (biome
organizeImports autofix) so the branch lints green.

Airside-Agent-Fix: true
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@MateuszPaulski

Copy link
Copy Markdown
Collaborator Author

🤖 airside-agent review2c5bf3a · 1 finding(s)

Sev Location Finding
⚪ low packages/client/src/panel/PanelListView.tsx:7 Merge resolution touches product source (one-line biome-canonical import reorder) despite "docs/tooling only" claim

Prior high (ADR-0050 renumber + main merge) and both mediums (tick-scan.sh pagination, conflicts-guard prose) verified resolved. No highs — CI-gate then promote to ready next round.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Agent: make the issue→PR orchestrator repo-independent and de-branded

1 participant