Skip to content

[Prism] docs: replace https://rxjs-dev.firebaseapp.com#83

Open
arjuncooliitr wants to merge 1 commit into
masterfrom
prism/fix-32
Open

[Prism] docs: replace https://rxjs-dev.firebaseapp.com#83
arjuncooliitr wants to merge 1 commit into
masterfrom
prism/fix-32

Conversation

@arjuncooliitr
Copy link
Copy Markdown
Contributor

Prism autonomous fix for #32

Archetype: typo
Priority: P3
Method: deterministic find-and-replace

Deterministic find-and-replace: https://rxjs-dev.firebaseapp.comhttps://rxjs.dev (3 files, extracted via expected-actual-urls).

Files changed

  • README.md — Replace 3 occurrences of https://rxjs-dev.firebaseapp.com
  • src/index.js — Replace 3 occurrences of https://rxjs-dev.firebaseapp.com
  • types.d.ts — Replace 3 occurrences of https://rxjs-dev.firebaseapp.com

Generated by Prism. Awaiting human review.

Closes #32

Generated by Prism (AI Week 2026)
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

arjuncooliitr added a commit to arjuncooliitr/prism-appbuilder-agent that referenced this pull request Apr 23, 2026
Priority 1 from the "what to build in the last days" ranking: the failure
case from the reflection is now a success case. No agent, no LLM call for
the fix itself, just mechanical find-and-replace when the issue gives us
enough signal to extract an (old, new) pair.

New module actions/common/deterministic-fix.js (~130 lines):
- extractPairFromRegex(title, body) tries five heuristics in order:
  1. aio issue template with Expected Behaviour / Actual Behaviour sections
     each containing a URL (this is exactly what #32 uses)
  2. "replace X with Y" / "replace X by Y"
  3. "change X to Y"
  4. Inline backtick arrow: `old` → `new` or `old` -> `new`
  5. Conservative "`old` should be `new`"
- applyReplacement(pair, ghAccess) greps the repo (skipping binary
  extensions and files > 200KB), rewrites every file where the old string
  appears, and stages an edit per file (capped at 10 files).
- tryDeterministicTypoFix({issue, ghAccess, logger}) is the top-level
  entry: extract → grep → rewrite. Returns null if extraction fails or
  no files match, letting the caller fall through to the Claude loop.

Integration in actions/fix-issue:
- For archetype === 'typo', try the deterministic path BEFORE spinning up
  the Claude tool-use loop. If it succeeds, skip Claude entirely and chain
  straight into create-pr.
- Extracted a shared buildDraft() helper so the draft/body/diff shape is
  identical across the deterministic and Claude paths — just the method
  label and summary differ.
- Extracted stageAndOpenPR() helper so the "persist draft + inline-chain
  create-pr + 504-tolerant state writes" dance is in one place.
- PR body now includes `Method: deterministic find-and-replace` or
  `Method: Claude tool-use loop (model)` for provenance.

Verified end-to-end: the same issue #32 that couldn't be committed across
four Claude attempts (8+ minutes of iterations, ~55k input tokens,
hitting the 5-min runtime timeout twice) now produces
adobe/aio-lib-events#83 in under 10 seconds — 3 files modified (README.md,
src/index.js, types.d.ts), 3 occurrences each, draft PR opened, no LLM
invoked for the fix.

Updated REFLECTION.md to flip the #32 section from "unresolved dead-end"
to "dead-end → lesson → fix shipped" — keeps the original failure writeup
as context and adds the Day-4 resolution.
@arjuncooliitr arjuncooliitr marked this pull request as ready for review April 24, 2026 18:07
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.

docs: replace https://rxjs-dev.firebaseapp.com

1 participant