Skip to content

fix(maintainer): mechanical fixes from 2026-07-16 maintainer-workflows review (B1/B2/B3/B5/R1/R4/R2)#2147

Open
Wirasm wants to merge 6 commits into
devfrom
fix/maintainer-workflow-findings
Open

fix(maintainer): mechanical fixes from 2026-07-16 maintainer-workflows review (B1/B2/B3/B5/R1/R4/R2)#2147
Wirasm wants to merge 6 commits into
devfrom
fix/maintainer-workflow-findings

Conversation

@Wirasm

@Wirasm Wirasm commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Mechanical fixes from the 2026-07-16 maintainer-workflows review (.claude/archon/reviews/2026-07-16-maintainer-workflows-review.md). One commit per finding: B1, B2, B5, R4, R1, B3, R2.

  • Problem: several maintainer workflows had silent failure modes — a renamed SDK tool that killed sub-agent fan-out (B1), a stale artifact reference (B2), a marketplace auto-merge fail-open on empty submissions (B3), a validator-flagged quoting bug (B5), a race on shared state (R1), an AI call for digit-picking (R4), and an AI-only path that auto-closed human PRs (R2).
  • Why it matters: these degrade triage quality invisibly, waste tokens, or take governance-weight actions (auto-merge, auto-close) with weaker justification than intended.
  • What changed: targeted fixes to 4 maintainer workflows + 1 command + 1 script, plus a new test for the marketplace schema-validator's empty-submission contract.
  • What did NOT change (scope boundary): no bundled defaults touched (nothing under .archon/workflows/defaults or commands/defaults), no engine/package source touched, no DB schema. B4/R3 (the repo-triage fork consolidation) are explicitly out of scope here.

⚠️ R2 is a governance behavior change and needs maintainer (Rasmus) sign-off — see the flagged section below.

Findings addressed

ID Commit Disposition
B1 rename Task tool to Agent Fixed — 4 nodes in repo-triage.yaml (review said 2; see discrepancy note)
B2 drop removed gate-decision references Fixed
B5 folded into R4 Resolved by R4 (offending reference deleted)
R4 bash-first PR-number extraction Fixed — with a URL-robustness correction (see note)
R1 atomic write of reviewed-prs.json Fixed
B3 reject submissions with no workflow YAML Fixed + test
R2 don't auto-close AI-only marketplace rejects Behavior change — needs sign-off

Verification-time discrepancies vs. the review/instructions (flagged for the record)

  1. B1 undercounted. The review named triage-issues + closed-dedup-check (2 nodes × 2 files = "4 sites"). The validator actually flags four nodes in repo-triage.yaml (triage-issues, closed-dedup-check, closed-pr-dedup-check, link-prs) — all four whitelist Task and orchestrate agents: fan-out through it. Since the acceptance criterion is "the warning disappears," all four are fixed.
  2. The minimax twin has no B1 bug. repo-triage-minimax.yaml is a Pi/Minimax fork with allowed_tools: [Bash, Read, Write] (no Task) that does all briefing inline and never uses the tool — it validates clean. There were no allowed_tools sites to change there; its prose references to the tool were renamed to Agent for consistency only.
  3. R4 URL-robustness. The instruction's "the grep already covers URLs" does not hold for this repo: a naive grep -oE '[0-9]+' | head -1 on github.com/coleam00/Archon/pull/1428 returns 00 (the org slug coleam00 contains digits). The new extractor anchors on pull/, issues/, #, or PR before grabbing digits, so bare numbers, #N, PR N, and full URLs all resolve to 1428.
  4. B2 residual. Besides the "Read the gate decision" section, the command header still said "for every PR that passes the gate" — the same removed-gate reference. Reworded to "for every PR under review."

UX Journey

These are maintainer-facing automation workflows (no end-user UI). The relevant operator-facing flows:

Before

maintainer-review-pr:
  trigger -> [AI node: extract PR number] -> fetch-pr (re-greps AI output) -> review...
             (LLM call to pick a digit; double-quoted "$node.output" -> validator warn)

marketplace reject (any reason):
  decide=reject -> post request-changes review -> gh pr close  (ALWAYS closes, incl. AI-only)

After

maintainer-review-pr:
  trigger -> [*bash node*: extract PR number from $ARGUMENTS, URL-anchored] -> fetch-pr (reads .pr-number) -> review...
             (no LLM; writes .pr-number; fails loudly if none)

marketplace reject:
  decide=reject + [close = deterministic scan/scope concurred?]
     close=true  -> review + gh pr close          (scope violation / critical|high scan - unchanged)
     close=false -> review + "flagged for maintainer close" comment, *PR stays open*  [CHANGED]

Architecture Diagram

Before

repo-triage.yaml --(allowed_tools: Task)--x  Claude SDK  (Task ignored -> agents: fan-out DEAD)
maintainer-review-pr.yaml: extract-pr-number(AI) -> fetch-pr -> .pr-number
marketplace: validate-schema(files:[]) -> decide(guard requires files.length>0) -> act(auto-merge/close)

After

repo-triage.yaml --(allowed_tools: [~]Agent)==>  Claude SDK  (agents: fan-out RESTORED)
maintainer-review-pr.yaml: [~]extract-pr-number(bash) ==> .pr-number -> fetch-pr
marketplace: validate-schema(files:[]) ==> [~]decide(empty-files => request_changes; [+]close flag) ==> [~]act(gated close)

Connection inventory:

From To Status Notes
repo-triage nodes Claude SDK Agent tool modified Task -> Agent in 4 nodes; fan-out reachable again
extract-pr-number fetch-pr modified AI node -> bash node; fetch-pr reads .pr-number
validate-schema decide modified empty files now routes to request_changes
decide act modified new close field gates gh pr close
record-review reviewed-prs.json modified non-atomic write -> temp+rename

Label Snapshot

  • Risk: risk: low (R2 alone is risk: medium — governance behavior)
  • Size: size: M
  • Scope: workflows
  • Module: workflows:maintainer-workflows

Change Metadata

  • Change type: bug (R4 is refactor, R2 is behavior/security-adjacent governance)
  • Primary scope: workflows

Linked Issue

  • Closes # (none — internal review doc, not a GitHub issue)
  • Related # (review: .claude/archon/reviews/2026-07-16-maintainer-workflows-review.md, findings B1/B2/B3/B5/R1/R4/R2)

Validation Evidence (required)

bun run validate      # -> VALIDATE_PASSED (exit 0; all package test batches: 0 fail)
bun run cli validate workflows repo-triage             # ok (was: 4 Task warnings)
bun run cli validate workflows repo-triage-minimax     # ok
bun run cli validate workflows maintainer-review-pr    # ok (was: 1 double-quote warning)
bun run cli validate workflows marketplace-pr-review-and-merge  # ok
bun test ./.archon/scripts/__tests__/marketplace-validate-schema.test.ts  # 5 pass / 0 fail
  • Evidence provided: full bun run validate exits 0; every validate workflows warning that motivated B1/B5 is gone; new empty-submission-contract test passes.
  • Intentionally skipped: none. Note: .archon/scripts/__tests__/ tests are not part of bun run validate (which is package-scoped) or CI — they run manually. The decide node is inline-YAML with no unit harness (stated per instructions); the validate-schema script contract it depends on is now test-pinned.

Security Impact (required)

  • New permissions/capabilities? No
  • New external network calls? No
  • Secrets/tokens handling changed? No
  • File system access scope changed? No (R1 writes a temp file in the same dir it already wrote to)
  • Net effect: R2 reduces the automation's blast radius (fewer auto-closes of human PRs); B3 closes a fail-open (empty submissions can no longer reach auto-merge).

Compatibility / Migration

  • Backward compatible? Yesrecord-review still writes the same reviewed-prs.json shape (incl. the gate_verdict: 'review' back-compat literal); .pr-number artifact contract unchanged; decision.json only gains an additive close field.
  • Config/env changes? No
  • Database migration needed? No
  • Upgrade steps: none — these are repo-level maintainer workflow files, picked up on next run.

Human Verification (required)

  • Verified scenarios: ran the PR-number extraction pipeline against 1428, #1428, PR 1428, the 2nd one, pr #1428, and github.com/coleam00/Archon/pull/1428 — all resolve to 1428 (the naive grep returns 00 on the URL). Confirmed all four workflows validate clean. Ran the new schema-validator test (5 pass).
  • Edge cases checked: empty source dir / no-YAML / non-workflow-YAML all yield files: []; a valid workflow yields a non-empty list; an unknown-provider workflow yields valid: false with a non-empty list.
  • What was not verified: no live end-to-end run against real GitHub PRs (the workflows drive gh write actions). The gh pr close gating (R2) and marketplace auto-merge path were verified by reading, not by executing against a live PR.

Side Effects / Blast Radius (required)

  • Affected subsystems/workflows: repo-triage, repo-triage-minimax, maintainer-review-pr, marketplace-pr-review-and-merge, maintainer-review-code-review command, marketplace-validate-schema script.
  • Potential unintended effects: R2 changes when contributor PRs auto-close — see the flagged section. B1's restored fan-out means repo-triage now actually spawns Haiku sub-agents (intended, but real token cost that was previously silently skipped).
  • Guardrails/monitoring: workflow validator is clean; the marketplace decide remains deterministic; auto-close now emits an explicit echo line naming whether it closed or flagged-for-maintainer.

Rollback Plan (required)

  • Fast rollback: revert the branch, or cherry-revert individual commits (each finding is one atomic commit). R2 is isolated in its own commit (afa19014) and can be reverted alone without affecting the other fixes.
  • Feature flags/toggles: none.
  • Observable failure symptoms: marketplace PRs not closing when they should (R2), or empty submissions still reaching auto-merge (B3 regression), or validate workflows warnings reappearing (B1/B5 regression).

Risks and Mitigations

  • Risk (R2, needs sign-off): AI-only rejects (Haiku says reject, deterministic scope + security scan both clean) no longer auto-close — they post the request-changes review and a "flagged for maintainer close" comment, leaving the PR open. Scope-violation and critical/high-scan rejects still auto-close exactly as before. This is the one deliberate governance change; the sharpest auto-action in the set (closing a human's PR on a single Haiku opinion) is downgraded to a maintainer decision.
    • Mitigation: isolated in its own commit; the truth table is documented inline in decide; revert-in-place if you'd rather keep AI-only auto-close.
  • Risk: R4's URL-anchored extraction could, in principle, miss an exotic argument shape the old AI node handled.
    • Mitigation: bare-number fallback covers the plain-integer case; verified against the common shapes above; fails loudly (non-zero exit) when no number is found rather than proceeding on a wrong value.
  • Risk: B1 restoring fan-out increases per-run token cost (previously the sub-agents were silently skipped).
    • Mitigation: intended behavior; the sub-agents are Haiku (cheap) and gated by preflight checks in the prompts.

Summary by CodeRabbit

  • Bug Fixes

    • Improved pull request number detection for more reliable review processing.
    • Prevented empty or invalid workflow submissions from progressing toward approval or merge.
    • Reduced the risk of lost review records during concurrent processing.
    • Clarified when rejected pull requests are automatically closed versus left open for maintainer action.
  • Tests

    • Added coverage for empty, non-workflow, valid, and invalid marketplace submissions.
  • Workflow Improvements

    • Standardized parallel review and triage operations for more consistent execution.
    • Updated code review guidance so every pull request receives a code-quality review.

Archon Maintainer Bot added 6 commits July 16, 2026 13:50
The Claude SDK renamed the sub-agent tool from `Task` to `Agent`; the old
name is silently ignored at runtime. Four nodes in repo-triage.yaml
(triage-issues, closed-dedup-check, closed-pr-dedup-check, link-prs)
whitelisted `Task` in allowed_tools and orchestrate `agents:` fan-out via
that tool, so their brief-gen / matcher sub-agent fan-out was silently
dead and the main agent was improvising the work inline.

Change `Task` -> `Agent` in all four allowed_tools arrays and update the
prompt wording that instructs the model to fan out via the tool. The
Pi/Minimax twin has no allowed_tools Task entry (it does everything
inline and never uses the tool); its prose references are updated to the
new tool name for consistency.

The validator warning ("Tool 'Task' was renamed to 'Agent'") now clears
for both workflows.
…ew command

The direction/scope gate phase was removed from maintainer-review-pr
(its description now says that path is gone), and nothing writes
$ARTIFACTS_DIR/gate-decision.md. The code-review command still opened
Phase 1 by `cat`-ing that missing file and framed its scope as "within
the scope the gate accepted", so every aspect run began with a
missing-file error and stale framing.

Delete the "Read the gate decision" section and reword the header line's
"for every PR that passes the gate" to "for every PR under review" — the
last dangling gate reference in the file.
extract-pr-number was an AI node whose only job was picking a digit run
out of $ARGUMENTS, with a bash grep fallback in fetch-pr immediately
after — an AI call for something bash does deterministically and for
free. Invert to bash-first and delete the AI node.

The new bash node reads $ARGUMENTS (injected as a subprocess env var, so
quoting is injection-safe), writes the number to .pr-number, and fails
loudly when none is present. fetch-pr now just reads .pr-number (like
fetch-diff already does), which removes the `"$extract-pr-number.output"`
double-quoted-substitution the validator flagged (B5) — the offending
reference no longer exists.

Extraction anchors on a keyword/URL segment (`pull/`, `issues/`, `#`,
`PR`) before grabbing digits, with a bare-number fallback. A naive
`grep -oE '[0-9]+' | head -1` on a PR URL would pick the FIRST number
anywhere in the string — wrong for this repo, whose org slug `coleam00`
makes `...//pull/1428` resolve to "00". The anchored grep
returns 1428 for bare numbers, `#N`, `PR N`, and full PR URLs alike.
maintainer-review-pr declares mutates_checkout: false, which permits
concurrent runs, yet record-review did a non-atomic read-modify-write of
the shared .archon/maintainer-standup/reviewed-prs.json — two overlapping
reviews could observe a half-written file or clobber each other mid-write.

Write to a temp file in the same directory and renameSync over the
target. Rename is atomic on POSIX, so a concurrent reader always sees a
complete file. Last-writer-wins is accepted (documented inline): the
standup only needs a recent-enough "reviewed" marker.
… (B3)

marketplace-validate-schema emits { valid: true, files: [] } when the
pinned SHA yields no workflow YAML (no source dir / no YAML / no
workflow-shaped YAML with a top-level `nodes:`). The decide node's schema
guard only fired on `valid: false` with a NON-empty file list, so an
empty or wrong-path submission passed schema, scanned clean (nothing to
scan), and reached the auto-merge branch — a fail-open where a marketplace
entry pointing at zero workflows could auto-merge.

Add a deterministic branch in decide: an empty `schemaResult.files` list
(regardless of `valid`) => request_changes with an explicit reason. Placed
after the scope/draft/scan-critical checks and before auto-merge. Document
the empty-list contract in the script's docstring and at each empty exit.

decide is an inline-YAML script node with no unit-test harness, but the
validate-schema script it depends on now has one: a new test pins the
three empty-source cases to files:[] plus non-empty contrast cases.
GOVERNANCE BEHAVIOR CHANGE — needs maintainer sign-off.

The marketplace reviewer auto-closed a contributor's PR on any `reject`
decision, including an AI-only reject (Haiku recommended reject while the
deterministic scope check and security scan were both clean). Closing a
human's PR on a single Haiku opinion is the sharpest auto-action in the
set (R2).

decide now emits a `close: boolean`. It is true only when a DETERMINISTIC
signal justified the reject — a critical/high security-scan severity, or a
scope violation — and false for an AI-only reject. The act node gates
`gh pr close` on it: deterministic rejects auto-close exactly as before;
AI-only rejects still post the request-changes review but stay open with a
"flagged for maintainer close" comment.

Only the AI-only-reject path changes; scope-violation and high-severity
scan rejects close identically to before. Everything else is unchanged.
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR hardens marketplace review decisions, makes maintainer review execution deterministic and atomic, updates review scope instructions, and replaces Task terminology with Agent terminology across triage workflows.

Changes

Marketplace review safeguards

Layer / File(s) Summary
Validator contract and coverage
.archon/scripts/marketplace-validate-schema.ts, .archon/scripts/__tests__/*
Documents empty-result behavior and tests empty, valid, and invalid workflow submissions.
Decision and rejection handling
.archon/workflows/maintainer/marketplace-pr-review-and-merge.yaml
Requests changes when no workflow files are found and conditionally closes deterministic rejects.

Maintainer review execution

Layer / File(s) Summary
Review scope instruction
.archon/commands/maintainer-review-code-review.md
Runs the focused reviewer for every PR and removes gate-decision review guidance.
PR extraction and review persistence
.archon/workflows/maintainer/maintainer-review-pr.yaml
Extracts PR numbers with Bash validation and atomically updates reviewed-PR state.

Triage Agent terminology

Layer / File(s) Summary
Standard triage Agent wiring
.archon/workflows/maintainer/repo-triage.yaml
Replaces Task tooling and fan-out instructions with Agent terminology across triage nodes.
Minimax triage Agent wording
.archon/workflows/maintainer/repo-triage-minimax.yaml
Updates sub-agent and no-fan-out prompt terminology from Task to Agent.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant SchemaValidator
  participant DecideNode
  participant ActNode
  SchemaValidator->>DecideNode: Return schemaResult
  DecideNode->>ActNode: Provide decision and close
  ActNode->>ActNode: Request changes and optionally close the PR
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is specific and accurately reflects the maintainer-workflows review fixes.
Description check ✅ Passed The description covers the required sections with diagrams, validation, risks, and scope boundaries.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/maintainer-workflow-findings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
.archon/workflows/maintainer/maintainer-review-pr.yaml (1)

33-63: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Prevent pipeline crashes under set -eo pipefail and avoid echo flag consumption.

If the workflow runner executes this script with set -o pipefail, the grep pipeline will fail when the prefix doesn't match (e.g. input is just 1428), crashing the script immediately and preventing the fallback from running. Appending || true ensures the pipeline always exits 0, allowing the empty-check fallback to execute safely.

Additionally, using printf '%s\n' instead of echo prevents $ARGUMENTS from being inadvertently consumed as a command-line flag if it happens to start with -n or -e.

🛡️ Proposed defensive refactor
-      PR_NUM=$(echo "$ARGUMENTS" | grep -oiE '(pull/|issues/|#|pr[[:space:]#]*)[0-9]+' | grep -oE '[0-9]+' | head -1)
+      PR_NUM=$(printf '%s\n' "$ARGUMENTS" | grep -oiE '(pull/|issues/|#|pr[[:space:]#]*)[0-9]+' | grep -oE '[0-9]+' | head -n 1 || true)
       if [ -z "$PR_NUM" ]; then
-        PR_NUM=$(echo "$ARGUMENTS" | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -1)
+        PR_NUM=$(printf '%s\n' "$ARGUMENTS" | tr -d "'\"\`\n " | grep -oE '[0-9]+' | head -n 1 || true)
       fi
       if [ -z "$PR_NUM" ]; then
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.archon/workflows/maintainer/maintainer-review-pr.yaml around lines 33 - 63,
Update the PR-number extraction pipelines in the bash step to use printf '%s\n'
"$ARGUMENTS" instead of echo, and make the anchored grep pipeline tolerate
no-match failures under pipefail (for example by appending || true) so the
bare-number fallback executes. Preserve the existing anchored-first extraction
and error handling behavior.
.archon/scripts/__tests__/marketplace-validate-schema.test.ts (1)

26-42: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Clean up the temporary directory after execution.

The runValidator function creates a temporary directory in the system's /tmp folder but does not remove it. This can lead to /tmp bloat during frequent local test runs. Wrapping the execution in a try...finally block to ensure rmSync cleans up the directory is recommended.

♻️ Proposed refactor to add cleanup

Ensure rmSync is imported at the top of the file:

import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'node:fs';

Then apply the cleanup in runValidator:

 function runValidator(sourceFiles: Record<string, string> | null): ValidateOutput {
   const artifactsDir = mkdtempSync(join(tmpdir(), 'validate-schema-'));
-  if (sourceFiles) {
-    const sourceDir = join(artifactsDir, 'source');
-    mkdirSync(sourceDir, { recursive: true });
-    for (const [rel, content] of Object.entries(sourceFiles)) {
-      const full = join(sourceDir, rel);
-      mkdirSync(dirname(full), { recursive: true });
-      writeFileSync(full, content);
-    }
-  }
-  const output = execFileSync('bun', [VALIDATOR], {
-    env: { ...process.env, ARTIFACTS_DIR: artifactsDir },
-    stdio: ['ignore', 'pipe', 'pipe'],
-  }).toString();
-  return JSON.parse(output) as ValidateOutput;
+  try {
+    if (sourceFiles) {
+      const sourceDir = join(artifactsDir, 'source');
+      mkdirSync(sourceDir, { recursive: true });
+      for (const [rel, content] of Object.entries(sourceFiles)) {
+        const full = join(sourceDir, rel);
+        mkdirSync(dirname(full), { recursive: true });
+        writeFileSync(full, content);
+      }
+    }
+    const output = execFileSync('bun', [VALIDATOR], {
+      env: { ...process.env, ARTIFACTS_DIR: artifactsDir },
+      stdio: ['ignore', 'pipe', 'pipe'],
+    }).toString();
+    return JSON.parse(output) as ValidateOutput;
+  } finally {
+    rmSync(artifactsDir, { recursive: true, force: true });
+  }
 }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.archon/scripts/__tests__/marketplace-validate-schema.test.ts around lines
26 - 42, Update runValidator to wrap the validator execution and JSON parsing in
a try/finally block, and call rmSync on artifactsDir in the finally clause with
recursive cleanup enabled. Import rmSync from node:fs while preserving the
existing temporary-directory setup and return behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.archon/scripts/__tests__/marketplace-validate-schema.test.ts:
- Around line 26-42: Update runValidator to wrap the validator execution and
JSON parsing in a try/finally block, and call rmSync on artifactsDir in the
finally clause with recursive cleanup enabled. Import rmSync from node:fs while
preserving the existing temporary-directory setup and return behavior.

In @.archon/workflows/maintainer/maintainer-review-pr.yaml:
- Around line 33-63: Update the PR-number extraction pipelines in the bash step
to use printf '%s\n' "$ARGUMENTS" instead of echo, and make the anchored grep
pipeline tolerate no-match failures under pipefail (for example by appending ||
true) so the bare-number fallback executes. Preserve the existing anchored-first
extraction and error handling behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9d8b5e97-59a7-46c0-8234-a24a6b33c328

📥 Commits

Reviewing files that changed from the base of the PR and between eb34c77 and afa1901.

📒 Files selected for processing (7)
  • .archon/commands/maintainer-review-code-review.md
  • .archon/scripts/__tests__/marketplace-validate-schema.test.ts
  • .archon/scripts/marketplace-validate-schema.ts
  • .archon/workflows/maintainer/maintainer-review-pr.yaml
  • .archon/workflows/maintainer/marketplace-pr-review-and-merge.yaml
  • .archon/workflows/maintainer/repo-triage-minimax.yaml
  • .archon/workflows/maintainer/repo-triage.yaml

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.

1 participant