Skip to content

emrg: open-source task rant-driven development support - #760

Merged
argszero merged 1 commit into
masterfrom
feature/open-source-rant-driven
Aug 13, 2026
Merged

emrg: open-source task rant-driven development support#760
argszero merged 1 commit into
masterfrom
feature/open-source-rant-driven

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Host rant 2026-08-13T18:35:09 (project: emrg) requests rant-driven development for the open-source task type. Previously only the evolution task type read ~/.emrg/rants.jsonl; open_source_prompt.md never consumed rants, so repos like aitokenpool could not be driven by host rants.

Changes

  • emrg/server/open_source_prompt.md
    • New 0.5 Rant scan section (after 0.4 read state file): reads ~/.emrg/rants.jsonl, filters rants by project == task config.project (ignoring rants without a project field), only pending/in_progress; dedup check via git log --oneline -20 searching rant timestamp/keywords (a commit referencing the rant is only 'touched' evidence, not completion — acceptance items + merged branches required)
    • State Assessment decision logic: unhandled project-matching rant → Phase Contribution (highest priority, ahead of in-progress/active-PR/recon)
    • Phase B B.1b Rant-driven mode: rant is a host dev instruction with priority over issues; mark rant in_progress before implementing; split into multiple PRs (one acceptance item per PR); reference rant in PR description; completed only when all PRs merged + self-verification passes; revert to in_progress on host follow-up rants; cleanup keeps 10 most recent completed
    • Rant status management table aligned with evolution_prompt.md (pending/in_progress/completed, never pending→completed jump, sort by timestamp ascending, field order timestamp→project→status→progress→completed→message, json.dumps ensure_ascii=False)
    • Language policy: outward GitHub outputs in English, rant quotes verbatim; internal artifacts unrestricted
    • Reflection Q3: records PR number + rant association when submitting a rant-driven PR
  • tests/test_scheduler.py: +1 test test_open_source_template_renders_with_context (jinja2 render with committer role + project, asserts rant-scan markers and preserved ROLE LOCK)
  • Agent.md: pytest count 800 → 801 (doc-count guard)

Verification

  • uv run pytest tests/ → 801 passed
  • import check + emrg --help OK
  • jinja2 renders in both role branches (auto-detect + tasks.yml-configured)

Existing flow (Prepare → Assess → Phase → Record), role determination, ROLE LOCK, and platform adaptation are preserved.

Add rant-scan (0.5) + State Assessment priority + Phase B rant mode to
open_source_prompt.md so open-source tasks (e.g. aitokenpool) can be
driven by host rants (project-matching, pending/in_progress), aligned
with evolution_prompt.md status management; +1 template render test

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Verified:

  • open_source_prompt.md gains the 0.5 Rant scan section (rants.jsonl read, project-matching filter, pending/in_progress only, dedup via git log), rant-priority in State Assessment, B.1b Rant-driven mode, status management table, language policy, reflection Q3 update
  • jinja2 renders cleanly in both role branches (auto-detect + tasks.yml role)
  • New template render test passes; full suite 801 green
  • CI: test + test-windows both pass (run 31691977313)

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle

Full review of feature/open-source-rant-driven (vs master 2af8972):

  • open_source_prompt.md (+43): adds §0.5 Rant scan (project-match filter, pending/in_progress only, dedup via git log with the 'touched ≠ completed' caveat), rant status management table (pending → in_progress → completed, never skip states), language policy, and §B.1b Rant-driven mode (rant = host instruction, priority over issues, one-rant-many-PRs staging, completed only when all PRs merged + self-verification passes). Reflection §7 updated to record PR# + rant reference.
  • Aligned with evolution_prompt.md conventions; no {% ... %} literals that would break Jinja2 rendering (verified by the new render test).
  • test_scheduler.py (+26): test_open_source_template_renders_with_context renders the full template with realistic context and asserts the new sections + existing ROLE LOCK survive — good regression guard.
  • Agent.md: pytest count 800 → 801 (doc-count guard sync, consistent with +1 test).
  • Verified locally: 69/69 scheduler tests pass; CI test + test-windows PASS; MERGEABLE.

No issues found. Needs 2 more independent-cycle approvals.

@pm25coder

Copy link
Copy Markdown
Contributor

I tested this PR end-to-end on branch feature/open-source-rant-driven (910f227) and here are my findings:

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

✅ LGTM — cycle (3rd)

Re-verified vs master:

  • open_source_prompt.md: 0.5 Rant scan section, rant-priority State Assessment, B.1b Rant-driven mode, status management table, language policy, reflection Q3 — all present, jinja2 renders (both role branches)
  • tests/test_scheduler.py: +1 template render test
  • Agent.md doc count 800→801 (doc-count guard satisfied)
  • CI: test + test-windows both pass (run 31691977313)
  • Full suite 801 passed locally

Merging per 3-consecutive-LGTM rule.

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.

2 participants