Skip to content

feat: optimize full pipeline for internship search#556

Open
vineetjangiriitb wants to merge 1 commit intosantifer:mainfrom
vineetjangiriitb:feat/internship-optimization
Open

feat: optimize full pipeline for internship search#556
vineetjangiriitb wants to merge 1 commit intosantifer:mainfrom
vineetjangiriitb:feat/internship-optimization

Conversation

@vineetjangiriitb
Copy link
Copy Markdown

@vineetjangiriitb vineetjangiriitb commented May 2, 2026

Summary

This PR fixes two critical bugs that caused the zero-token scanner to scan 0 companies, and realigns all evaluation modes from senior-role framing to intern-level framing.

  • scan.mjs: Fix Greenhouse URL regex (was silently skipping Anthropic, W&B, Arize, Retool); add Ashby employmentType filter to drop full-time jobs at source; replace substring title matching with word-boundary regex so "intern" no longer matches "International" or "Internal Tooling"
  • modes/oferta.md: Step 0 reads archetypes from _profile.md; Block A adds Duration + Stipend fields; Block B/F updated to intern archetype framing; Block C replaces "sell senior / downlevel" with "demonstrate learning velocity / low stipend"; Block D adds Internshala and an intern-calibrated comp scoring scale; Block F reflection column no longer says "signals seniority"; red-flag examples updated to intern level
  • batch/batch-prompt.md: All 6 senior archetypes replaced with 5 intern archetypes; adaptive framing updated; Block C/D aligned with oferta.md changes; header translated to English
  • modes/followup.md: Follow-up example replaced — was "15 years PHP experience", now an intern example using candidate's actual projects
  • modes/_shared.md: Cover letter guidance distinguishes short text-box (3–4 sentences) from full 1-page cover letter

Test plan

  • Run node scan.mjs --dry-run — should show 10+ companies detected (not 0)
  • Confirm only intern/new-grad titles appear in dry-run output (no "Enterprise Account Executive" slipping through via "International" substring match)
  • Run /career-ops oferta on a sample intern JD — verify Block C generates "learning velocity" strategy, not "sell senior" strategy
  • Verify Block D references Internshala in comp research

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Standardized all platform documentation to English
    • Updated role archetypes with internship-focused definitions
    • Refined evaluation workflows with expanded assessment structure
    • Enhanced compensation research guidance for internship stipends
  • New Features

    • Improved job board API detection capabilities
    • Enhanced title filtering with word-boundary matching to reduce false positives

Fixes two critical bugs that caused the zero-token scanner to scan
0 companies, and realigns all evaluation modes from senior-role framing
to intern-level framing for IIT Bombay B.Tech 2027 candidate.

**scan.mjs**
- Fix Greenhouse URL regex to match both `boards.greenhouse.io` and
  `job-boards.greenhouse.io` variants (was silently skipping Anthropic,
  W&B, Arize, Retool)
- Add Ashby `employmentType` filter: drop jobs explicitly tagged
  full-time/permanent before title filtering
- Replace substring title matching with word-boundary regex so "intern"
  no longer matches "International" or "Internal Tooling"

**modes/oferta.md**
- Step 0: read archetypes from `_profile.md` instead of hardcoded 6
- Block A: add Duration and Stipend fields for intern postings
- Block B: replace FDE/SA/PM/LLMOps framing with intern archetypes
- Block C: replace "sell senior / downlevel" plan with "demonstrate
  learning velocity / low stipend" plan
- Block D: add Internshala as comp source; add intern-calibrated scoring
  scale (₹15k–₹100k+ / $7k+ USD)
- Block F: remove "signals seniority" framing for Reflection column;
  update archetype framing and red-flag questions to intern level

**batch/batch-prompt.md**
- Replace all 6 senior archetypes with 5 intern archetypes
- Replace senior adaptive framing with intern proof-point framing
- Update Block C and Block D to match oferta.md changes
- Translate header from Spanish to English

**modes/followup.md**
- Replace senior follow-up example (15 yrs PHP) with intern example
  using candidate's actual projects

**modes/_shared.md**
- Cover letter guidance now distinguishes short text-box (3–4 sentences)
  from full 1-page cover letter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 2, 2026

Welcome to career-ops, @vineetjangiriitb! Thanks for your first PR.

A few things to know:

  • Tests will run automatically — check the status below
  • Make sure you've linked a related issue (required for features)
  • Read CONTRIBUTING.md if you haven't

We'll review your PR soon. Join our Discord if you have questions.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 2, 2026

📝 Walkthrough

Walkthrough

This PR transitions the career-ops system from Spanish to English and reorients it from senior-hire evaluation to internship-focused job discovery and evaluation. Changes include language policy enforcement, archetype redefinition, evaluation workflow expansion, and job discovery filtering logic updates across documentation and a script file.

Changes

Internship-Focused System Reorientation

Layer / File(s) Summary
Language Policy Foundation
GEMINI.md
Adds a strict language policy requiring all outputs to be generated in English, with mandatory translation of non-English job descriptions for analysis and responses.
Evaluation Framework & Archetype Redefinition
batch/batch-prompt.md, modes/oferta.md
Replaces Spanish senior-role archetypes (Platform/LLMOps, Agentic, etc.) with English internship-focused archetypes (ML/DL Intern, AI Engineering Intern, Backend/Fullstack Intern, Research Intern, Data Science Intern). Adds adaptive framing guidance, learning-velocity ramp plans, low-stipend handling strategies, and expands oferta.md into a full A–G evaluation workflow with structured role summary, CV mapping, leveling strategy, compensation calibration (1–5 intern scale), personalization planning, and multi-signal job legitimacy checking.
Operational Guidance Updates
modes/_shared.md, modes/followup.md, modes/pipeline.md, modes/tracker.md
Updates cover-letter generation rules to adapt based on form input type (short text vs. full letter); changes language requirement from "JD language (EN default)" to always English. Replaces senior-developer email example with internship-focused tone. Translates pipeline mode to English with renamed workflow states (Pending/Processed) and adds explicit score threshold (>= 3.0) for PDF generation. Converts tracker mode to English with updated status flow (Evaluated → Applied → Responded → Contacted → Interview → Offer/Rejected/Discarded/SKIP).
Scan Workflow Clarification & Documentation
modes/scan.md
Translates and restructures portal-discovery process documentation to clarify three-level scanning approach (Level 1: Playwright on tracked company careers_url, Level 2: direct ATS/API queries, Level 3: WebSearch with sequential liveness verification). Expands guidance on deduplication, active vs. expired classification, handling of missing/broken careers_url entries, and local storage of private JD URLs.
Job Discovery & Filtering Logic
scan.mjs
Expands Greenhouse API detection to match broader host/path patterns (job-boards(.eu)?.greenhouse.io, boards.greenhouse.io). Adds employment-type filtering in Ashby parser to exclude full-time/permanent roles, returning only internship-eligible postings. Refactors title filtering from lowercased substring matching to case-insensitive word-boundary regex, preventing false matches (e.g., intern no longer matches within International).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Suggested labels

📄 docs, 🔧 scripts, 🔴 core-architecture, ⚠️ agent-behavior

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 60.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: optimize full pipeline for internship search' directly addresses the primary focus of this PR: optimizing the entire system (scanner, evaluation modes, templates) for internship-level roles and fixing scanner bugs that prevented company detection.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
batch/batch-prompt.md (2)

96-103: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: Block B references obsolete senior archetypes instead of the new intern archetypes.

Lines 96-103 still reference the old senior-role archetypes (FDE, SA, PM, LLMOps, Agentic, Transformation), but Step 0 (lines 58-86) now detects intern archetypes (ML/Deep Learning Intern, AI Engineering Intern, Backend/Fullstack Intern, Research Intern, Data Science Intern). This mismatch will break the archetype-adapted evaluation logic in Block B.

🔧 Proposed fix to align Block B with intern archetypes
 **Adaptado al arquetipo:**
-- FDE → priorizar delivery rápida y client-facing
-- SA → priorizar diseño de sistemas e integrations
-- PM → priorizar product discovery y métricas
-- LLMOps → priorizar evals, observability, pipelines
-- Agentic → priorizar multi-agent, HITL, orchestration
-- Transformation → priorizar change management, adoption, scaling
+- If ML / Deep Learning → prioritize training/fine-tuning experiments, PyTorch fluency, paper implementation
+- If AI Engineering → prioritize LLM API integration, RAG pipelines, end-to-end AI feature delivery
+- If Backend / Fullstack → prioritize API design, systems thinking, database schema, shipped code
+- If Research (CV/NLP) → prioritize paper reading, benchmark implementation, research methodology
+- If Data Science → prioritize EDA, modeling pipeline, SQL, clear communication of results

This matches the archetype-specific guidance from modes/oferta.md:29-34.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@batch/batch-prompt.md` around lines 96 - 103, Block B currently uses obsolete
senior archetype labels (FDE, SA, PM, LLMOps, Agentic, Transformation) which no
longer match the intern archetypes detected in Step 0; update the archetype
mapping in Block B to use the intern archetype names (ML/Deep Learning Intern,
AI Engineering Intern, Backend/Fullstack Intern, Research Intern, Data Science
Intern) and adjust any role-specific guidance text to match the intern-focused
priorities referenced in modes/oferta.md lines 29-34 so the archetype-adapted
evaluation logic aligns with the output of Step 0.

3-377: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Translate the entire prompt to English to comply with output requirements.

The document body remains predominantly in Spanish ("Eres un worker de evaluación", "Fuentes de Verdad", "Bloque A-G", etc.), which violates the learning requirement that ALL outputs must be in English. Since this is a prompt template that generates evaluation reports, keeping it in Spanish will likely produce Spanish-language outputs.

Based on learnings: "ALL outputs MUST be in English, including internal reports, generated CVs, outreach messages, and all communication with the user. NEVER generate content in Spanish or any other language unless explicitly requested by the user for a specific task."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@batch/batch-prompt.md` around lines 3 - 377, Summary: The prompt file is
mostly in Spanish and must be fully translated into English while preserving all
placeholders, filenames, rules, and structural semantics. Fix: Translate every
user-facing and internal instruction in batch/batch-prompt.md into clear English
(preserve exact placeholders like {{URL}}, {{JD_FILE}}, {{REPORT_NUM}},
{{DATE}}, {{ID}}; keep filenames cv.md, llms.txt, article-digest.md,
generate-pdf.mjs, templates/cv-template.html, modes/_profile.md; retain blocks
A–G, pipeline steps, TSV format, JSON output schema and “NUNCA/SIEMPRE” rules),
update the explicit rule that "ALL outputs must be in English" into the
document, and ensure examples, tables, and template placeholders remain
semantically identical. Also ensure formatting, headings (A–G), and the PDF
generation command and template placeholder names are unchanged except for
language; do not alter behavior, filenames, or numeric formats.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@batch/batch-prompt.md`:
- Around line 118-120: Update the generic 1-5 scoring text in batch-prompt.md
(around the internship stipend guidance) to include the detailed intern-specific
calibration scale from modes/oferta.md (refer to the calibration anchors at
lines ~57-62) so evaluators have concrete numerical anchors for 5=top quartile,
4=above market, 3=median, 2=slightly below, 1=well below; replace or expand the
existing Score de comp paragraph to verbatim/near-verbatim include those
intern-calibrated descriptors and examples (stipend ranges or qualitative cues)
and ensure the prompt instructs to cite sources when assigning scores.

In `@modes/pipeline.md`:
- Around line 7-14: The appendToPipeline function is looking for Spanish section
headers and therefore fails to append; update the header string constants in
appendToPipeline (currently "## Pendientes" and "## Procesadas") to the English
headers used in modes/pipeline.md ("## Pending" and "## Processed") so the
function finds and inserts entries into the correct sections, and verify any
related index/regex that matches those headers is updated accordingly.

---

Outside diff comments:
In `@batch/batch-prompt.md`:
- Around line 96-103: Block B currently uses obsolete senior archetype labels
(FDE, SA, PM, LLMOps, Agentic, Transformation) which no longer match the intern
archetypes detected in Step 0; update the archetype mapping in Block B to use
the intern archetype names (ML/Deep Learning Intern, AI Engineering Intern,
Backend/Fullstack Intern, Research Intern, Data Science Intern) and adjust any
role-specific guidance text to match the intern-focused priorities referenced in
modes/oferta.md lines 29-34 so the archetype-adapted evaluation logic aligns
with the output of Step 0.
- Around line 3-377: Summary: The prompt file is mostly in Spanish and must be
fully translated into English while preserving all placeholders, filenames,
rules, and structural semantics. Fix: Translate every user-facing and internal
instruction in batch/batch-prompt.md into clear English (preserve exact
placeholders like {{URL}}, {{JD_FILE}}, {{REPORT_NUM}}, {{DATE}}, {{ID}}; keep
filenames cv.md, llms.txt, article-digest.md, generate-pdf.mjs,
templates/cv-template.html, modes/_profile.md; retain blocks A–G, pipeline
steps, TSV format, JSON output schema and “NUNCA/SIEMPRE” rules), update the
explicit rule that "ALL outputs must be in English" into the document, and
ensure examples, tables, and template placeholders remain semantically
identical. Also ensure formatting, headings (A–G), and the PDF generation
command and template placeholder names are unchanged except for language; do not
alter behavior, filenames, or numeric formats.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c878b676-d86b-487c-b754-d92cef5911eb

📥 Commits

Reviewing files that changed from the base of the PR and between 9ae201d and fb9c8d6.

📒 Files selected for processing (9)
  • GEMINI.md
  • batch/batch-prompt.md
  • modes/_shared.md
  • modes/followup.md
  • modes/oferta.md
  • modes/pipeline.md
  • modes/scan.md
  • modes/tracker.md
  • scan.mjs

Comment thread batch/batch-prompt.md
Comment on lines +118 to 120
Usar WebSearch para stipends actuales de internships — buscar explícitamente "internship" para no confundir con salarios full-time (Internshala, Glassdoor, Levels.fyi intern section, company reviews). Reputación comp de la empresa para interns (return offer rate, stipend ranges). Tendencia demanda. Tabla con datos y fuentes citadas. Si no hay datos, decirlo — missing stipend disclosure is common for internships.

Score de comp (1-5): 5=top quartile, 4=above market, 3=median, 2=slightly below, 1=well below.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Add the detailed intern comp calibration scale for consistency.

Line 118 correctly updates the research guidance to focus on internship stipends, but line 120 provides only a generic 1-5 score description. Consider adding the specific intern-calibrated scale from modes/oferta.md to ensure consistent scoring across interactive and batch evaluation modes.

📊 Proposed addition of detailed calibration scale
 Score de comp (1-5): 5=top quartile, 4=above market, 3=median, 2=slightly below, 1=well below.
+
+**Comp score calibration for interns (1–5):**
+- 5 → top-tier stipend (₹100k+/month India or $7k+/month USD)
+- 4 → above market for role type
+- 3 → market-rate
+- 2 → slightly below (but not dealbreaker for strong brand/learning)
+- 1 → unpaid or token stipend (< ₹15k/month)

This matches the calibration guidance in modes/oferta.md:57-62 and provides concrete numerical anchors for evaluators.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Usar WebSearch para stipends actuales de internships — buscar explícitamente "internship" para no confundir con salarios full-time (Internshala, Glassdoor, Levels.fyi intern section, company reviews). Reputación comp de la empresa para interns (return offer rate, stipend ranges). Tendencia demanda. Tabla con datos y fuentes citadas. Si no hay datos, decirlo — missing stipend disclosure is common for internships.
Score de comp (1-5): 5=top quartile, 4=above market, 3=median, 2=slightly below, 1=well below.
Usar WebSearch para stipends actuales de internships — buscar explícitamente "internship" para no confundir con salarios full-time (Internshala, Glassdoor, Levels.fyi intern section, company reviews). Reputación comp de la empresa para interns (return offer rate, stipend ranges). Tendencia demanda. Tabla con datos y fuentes citadas. Si no hay datos, decirlo — missing stipend disclosure is common for internships.
Score de comp (1-5): 5=top quartile, 4=above market, 3=median, 2=slightly below, 1=well below.
**Comp score calibration for interns (1–5):**
- 5 → top-tier stipend (₹100k+/month India or $7k+/month USD)
- 4 → above market for role type
- 3 → market-rate
- 2 → slightly below (but not dealbreaker for strong brand/learning)
- 1 → unpaid or token stipend (< ₹15k/month)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@batch/batch-prompt.md` around lines 118 - 120, Update the generic 1-5 scoring
text in batch-prompt.md (around the internship stipend guidance) to include the
detailed intern-specific calibration scale from modes/oferta.md (refer to the
calibration anchors at lines ~57-62) so evaluators have concrete numerical
anchors for 5=top quartile, 4=above market, 3=median, 2=slightly below, 1=well
below; replace or expand the existing Score de comp paragraph to
verbatim/near-verbatim include those intern-calibrated descriptors and examples
(stipend ranges or qualitative cues) and ensure the prompt instructs to cite
sources when assigning scores.

Comment thread modes/pipeline.md
Comment on lines +7 to +14
1. **Read** `data/pipeline.md` → find `- [ ]` items in the "Pending" section
2. **For each pending URL**:
a. Calculate next sequential `REPORT_NUM` (read `reports/`, take highest number + 1)
b. **Extract JD** using Playwright (browser_navigate + browser_snapshot) → WebFetch → WebSearch
c. If URL is not accessiblemark as `- [!]` with a note and continue
d. **Execute full auto-pipeline**: A-G Evaluation → Report .md → PDF (if score >= 3.0) → Tracker
e. **Move from "Pending" to "Processed"**: `- [x] #NNN | URL | Company | Role | Score/5 | PDF ✅/❌`
3. **If there are 3+ pending URLs**, launch agents in parallel (Agent tool with `run_in_background`) to maximize speed.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify scan.mjs still uses Spanish section names
rg -n "Pendientes|Procesadas" scan.mjs

Repository: santifer/career-ops

Length of output: 353


🏁 Script executed:

grep -n "^## " modes/pipeline.md | head -20

Repository: santifer/career-ops

Length of output: 227


scan.mjs section markers must match the English headers in modes/pipeline.md.

The appendToPipeline function in scan.mjs searches for Spanish section headers ("## Pendientes" and "## Procesadas"), but modes/pipeline.md now uses English headers ("## Pending" and "## Processed"). This causes the function to fail appending entries to the correct section.

Update scan.mjs lines 205 and 209:

-  const marker = '## Pendientes';
+  const marker = '## Pending';
-    const procIdx = text.indexOf('## Procesadas');
+    const procIdx = text.indexOf('## Processed');
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modes/pipeline.md` around lines 7 - 14, The appendToPipeline function is
looking for Spanish section headers and therefore fails to append; update the
header string constants in appendToPipeline (currently "## Pendientes" and "##
Procesadas") to the English headers used in modes/pipeline.md ("## Pending" and
"## Processed") so the function finds and inserts entries into the correct
sections, and verify any related index/regex that matches those headers is
updated accordingly.

@Qodo-Free-For-OSS
Copy link
Copy Markdown

Hi, scan.mjs buildTitleFilter() wraps the entire keyword with lookarounds, so keywords that include a trailing space (e.g., "Java ", "SAP ") will no longer match normal titles like "Java Developer", causing excluded roles to slip through.

Severity: action required | Category: correctness

How to fix: Trim keywords before regex

Agent prompt to fix - you can give this to your LLM of choice:

Issue description

scan.mjs builds word-boundary regexes around the entire keyword. Keywords with trailing spaces (e.g., "Java ", "SAP " in templates/portals.example.yml) will stop matching common titles like "Java Developer", breaking negative filtering.

Issue Context

The template relies on trailing-space keywords to avoid matching substrings (e.g., Java vs JavaScript). The new lookaround approach should achieve this without requiring trailing spaces, but only if keywords are normalized.

Fix Focus Areas

  • scan.mjs[131-146]
    • Normalize keywords via trim() before escaping/regex construction.
    • Skip empty keywords after trimming.
    • Consider replacing lookbehind with a non-lookbehind boundary pattern while you’re here (optional but recommended).
  • templates/portals.example.yml[72-101]
    • Optionally remove trailing spaces in template keywords once trimming is in place (to reduce future footguns).

Found by Qodo code review

deepak-glitch pushed a commit to deepak-glitch/career-ops that referenced this pull request May 5, 2026
…Fs, archived 3 below-threshold)

- scan.mjs: ElevenLabs Spain FDE (1 new offer added by Level 1/2)
- Level 3 WebSearch: Greenhouse new grad + Workable HF/Jalasoft/Vettura
  + Breezy Urrly + Ashby P-1 AI + Himalayas Robots & Pencils + Remotive
  Littlebird (8 URLs added; 3 archived as fetch errors)
- 6 new evaluations (santifer#556-santifer#561 — ElevenLabs Spain dedup'd against santifer#468):
  * santifer#557 Underdog 2026 New Grad (1.8/5 — no visa sponsorship; SKIP)
  * santifer#558/562 P-1 AI FDE (3.0/5 — engineering AGI seed; PDF generated)
  * santifer#559 Vettura AI/ML (3.0/5 — mid breadth NLP+CV+GenAI; PDF generated)
  * santifer#560 Robots & Pencils (1.8/5 — Colombia + senior; SKIP)
  * santifer#561 Littlebird Applied AI (3.5/5 — RAG hybrid search; PDF generated)
- merge-tracker + verify-pipeline: 0 errors / 0 warnings
- cleanup-low-scores: 3 archived to reports/below-threshold/

https://claude.ai/code/session_overnight_2026-05-05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants