Skip to content

afk-pipeline recap phase: two distinct publish failures in one day (OAuth session limit; MDX acorn-parse 422) — harden the phase #5

Description

@JorgeMenaDev

Note

Triage status 2026-07-12 (verified vs origin/main, afk-pipeline v2.13.1)
Fixed since filing: recap is now a separate job with continue-on-error: true (never burns the implement job) and opt-in — briefs stamp recap: off by default (v2.9.3, 896b405); authoring writes recap-source.json to disk instead of structured-output extraction; three MDX guardrails live in templates/sandcastle/recap/mdx-authoring-rules.md.
Remaining scope of this issue: (1) pre-publish local MDX compile + one self-repair round (a publish 422 still just fails the job); (2) explicit raw-{/}-in-prose acorn rule; (3) session-limit-distinct skipped_quota note; (4) in-job retry for transient connection drops (per the 2026-07-07 comment). recap.ts is single-pass, exit 1 on no URL.

Observed on Arketix/acredix, 2026-07-05, both on the local lane at v2.2.x:

  1. Run 28742075548 (issue seo-v4 slice 3e: affiliate/promo integrity (#40) #68): recap agent died on You've hit your session limit · resets 4:10pm (UTC) — the CLAUDE_CODE_OAUTH_TOKEN quota. Phase correctly reported failure, but a quota error is retryable-later by nature; today it just burns the job.
  2. Run 28749642800 (issue seo-v4 slice 6a: offline link-graph analyzer (#35) #71): recap authored MDX the Plan app rejects — create-visual-recap failed 422 Unprocessable Entity: {\"error\":\"Could not parse expression with acorn\"} — i.e. a JSX expression syntax error in authored content. Sibling failure mode to the empty-Screen 422 already guarded in mdx-authoring-rules.md (andesphere PR seo-growth-workspace: add optional geo-grid measurement for local rankings #33).

Suggested hardening (evidence-driven, pick what's cheap):

  • Pre-publish MDX validation step in the recap job: compile/parse the authored MDX locally (acorn/mdx compile) BEFORE calling recap publish; on parse failure, feed the error back to the agent for one self-repair round instead of failing the job.
  • Add an authoring rule to mdx-authoring-rules.md: no raw {/} in prose, expressions must be valid JS (the acorn error class).
  • Optional: detect the session-limit string and emit a distinct skipped_quota issue note (parallel to skipped_no_engine) so consumers know it's retryable.

Both PRs shipped fine without recap (best-effort held), but 2/3 recap runs failing on one repo in one day is a phase-health signal.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions