Skip to content

fix(batch): include modes/_profile.md in worker sources of truth#584

Open
danielhigueramarketing-a11y wants to merge 1 commit intosantifer:mainfrom
danielhigueramarketing-a11y:fix/batch-prompt-profile-md
Open

fix(batch): include modes/_profile.md in worker sources of truth#584
danielhigueramarketing-a11y wants to merge 1 commit intosantifer:mainfrom
danielhigueramarketing-a11y:fix/batch-prompt-profile-md

Conversation

@danielhigueramarketing-a11y
Copy link
Copy Markdown

@danielhigueramarketing-a11y danielhigueramarketing-a11y commented May 6, 2026

Closes #583.

Summary

  • Makes batch workers honor modes/_profile.md the same way interactive modes do.
  • Two-line addition to batch/batch-prompt.md: one source row + one precedence rule.

Why

Parallel claude -p batch workers spawned by /career-ops batch don't inherit the orchestrator's context. modes/_shared.md line 23 routes interactive modes through _profile.md ("Read _profile.md AFTER this file. User customizations in _profile.md override defaults here."), but batch/batch-prompt.md's "Fuentes de Verdad" table omits it. Batch evaluations therefore use the upstream defaults baked into batch-prompt.md instead of the user's customizations (archetypes, adaptive framing, factual constraints).

See #583 for the detailed problem write-up.

Diff

 | cv.md | `cv.md (project root)` | SIEMPRE |
+| _profile.md | `modes/_profile.md` | SIEMPRE (user overrides — archetypes, framing, factual constraints, custom rules) |
 | llms.txt | `llms.txt (if exists)` | SIEMPRE |
 ...
+**REGLA: `_profile.md` tiene prioridad sobre este prompt.** Cuando algo en `_profile.md` contradiga las reglas siguientes (archetype list, framing por rol, constraints, etc.), prevalece `_profile.md`. Consistente con `modes/_shared.md` línea 23: *"Read _profile.md AFTER this file. User customizations in _profile.md override defaults here."*
 **REGLA: NUNCA escribir en cv.md ni i18n.ts.** Son read-only.

Test plan

  • Add a custom rule to modes/_profile.md (e.g., a factual constraint about how a specific role should be framed, or a new entry in "Your Adaptive Framing").
  • Run /career-ops batch against an offer that would trigger the customization.
  • Confirm the worker's report reflects the _profile.md rule (without this PR, it would not).
  • Run /career-ops oferta against the same offer and compare — output should be consistent across both modes.

Compatibility

No behavior change for users without _profile.md customizations (the default _profile.template.md ships with archetype/framing slots that match batch-prompt.md's defaults, so worker output is identical). Users with customizations: batch and interactive modes converge on the customized output, matching _shared.md's documented intent.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated system configuration to establish priority rules for data sources and enforce stricter validation constraints on editable content.

Parallel `claude -p` batch workers spawned by `/career-ops batch`
don't inherit the orchestrator's context, so they were missing the
user's `modes/_profile.md` overrides that interactive modes pick up
via `modes/_shared.md` (line 23: "Read _profile.md AFTER this file.
User customizations in _profile.md override defaults here.").

This makes batch workers behave consistently with interactive modes:
archetype customizations, adaptive framing, factual constraints, and
any other `_profile.md` overrides now apply during batch evaluation.

Two changes:
- Add `_profile.md` row to "Fuentes de Verdad" table
- Add a precedence rule mirroring `_shared.md`

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: f4c30a4a-0eb9-477e-b909-aa59d2644790

📥 Commits

Reviewing files that changed from the base of the PR and between 7605a5e and 5485e98.

📒 Files selected for processing (1)
  • batch/batch-prompt.md

📝 Walkthrough

Walkthrough

The PR updates batch/batch-prompt.md to register _profile.md as a source of truth with override priority, aligning batch worker behavior with interactive modes. It also adds explicit file-access rules and metric-sourcing constraints.

Changes

Batch Worker Profile Source Integration

Layer / File(s) Summary
Source Declaration
batch/batch-prompt.md (lines 18–25)
_profile.md is added to the "Fuentes de Verdad" table as a source that is always read and has priority over default prompt rules.
Priority & Constraints
batch/batch-prompt.md (lines 26–28)
Explicit rules established: _profile.md overrides archetypes, framing, constraints, and custom rules; cv.md and i18n.ts are read-only; metrics must be sourced from cv.md and article-digest.md (not hardcoded), with article-digest.md taking precedence for article metrics.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related issues

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix(batch): include modes/_profile.md in worker sources of truth' accurately and concisely describes the main change: adding _profile.md to batch workers' sources of truth.
Linked Issues check ✅ Passed The PR fully addresses both requirements from issue #583: (1) adding _profile.md to the 'Fuentes de Verdad' table and (2) adding a precedence rule so _profile.md overrides batch-prompt.md defaults.
Out of Scope Changes check ✅ Passed The changes are limited to batch/batch-prompt.md with two targeted additions directly addressing issue #583, with no unrelated modifications or scope creep.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

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

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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 and usage tips.

deepak-glitch pushed a commit to deepak-glitch/career-ops that referenced this pull request May 6, 2026
… PDFs)

- scan.mjs: 73 companies API-scanned, 0 new (steady-state)
- Level 3 WebSearch: +10 URLs added to today's pipeline section
  (Ashby, SmartRecruiters, Himalayas, Recruitee, TeamTailor)
- Pipeline batch: processed 10 URLs → 8 reports (santifer#579-586) + 2 archived as
  closed-posting errors (Clutch Ashby null, RealityMine TeamTailor inactive)
- Reports + PDFs (score >= 3.0): santifer#579 Daxko (3.6/5, US Remote, RAG + multi-
  provider LLM API 1:1), santifer#580 Aspen Skiing (3.0/5, Aspen/Denver CO,
  Azure/Copilot ramp gap)
- Below-threshold (score < 3.0, archived): #581 Adaptive ML (NY in-person,
  4-8+ yr senior gate), santifer#582 Synthflow Berlin (German fluency veto),
  santifer#583 Amdaris (UK + comp gap), santifer#584 Red Hat (10+ yr senior gate),
  santifer#585 LITIT (Lithuania), santifer#586 Radix.AI (Brussels)
- merge-tracker.mjs: +7 added, 1 skipped (Synthflow Berlin variant lower
  than existing santifer#193)
- verify-pipeline.mjs: 0 errors / 0 warnings
- cleanup-low-scores.mjs: 5 archived to below-threshold/
- pipeline.md: 10 entries moved Pendientes → Procesadas under 2026-05-06
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.

Batch workers don't read modes/_profile.md (interactive modes do)

1 participant