- Replaced unbounded `Promise.all` with `pMap` and `RELAY_BACKGROUND_CONCURRENCY || 3` in `js/nostr/dmSignalEvents.js` and `js/services/dmNostrService.js` to prevent network saturation.
- Updated `scripts/check-hex.js` to exclude agent artifact directories (`perf/`, `test_logs/`, `context/`, etc.) to prevent lint failures when agents log code snippets or hex codes.
- Increased `maxBuffer` in `scripts/check-hex.js` to 10MB to be robust against large matches.
- Updated `js/services/exploreDataService.js` to trigger immediate data refresh (`refreshWatchHistoryTagCounts` and `refreshTagIdf`) when visibility state changes to visible, fixing a unit test failure.
- Includes daily performance report and context logs.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Updated `docs/agents/prompts/daily/bitvid-audit-agent.md` to reference the correct Python audit parsing scripts in `scripts/agent/audit-parsers/`.
- Updated `docs/agents/PROMPT_LIBRARY_STATUS.md` with the fix.
Co-authored-by: PR0M3TH3AN <[email protected]>
TORCH (Task Orchestration via Relay-Coordinated Handoff) is the name
for the Nostr-based distributed task locking system used to coordinate
multi-agent development.
Adds docs/agents/TORCH.md covering:
- Protocol overview with sequence diagram
- NIP-78 event schema with tag breakdown
- Ephemeral key lifecycle and why no secrets are needed
- Race detection mechanism
- Auto-expiration via NIP-40
- Configuration reference
- Architecture diagram
- Path toward a generalizable drop-in package for any repo
Also references TORCH by name in AGENTS.md, scheduler-flow.md,
nostr-lock.mjs header, and CLAUDE.md key documentation table.
https://claude.ai/code/session_01BpDsVSAkVWtJLnfKxsB9ib
Remove the git push and GitHub API fallback methods from the scheduler
flow, leaving only the Nostr lock as the single locking mechanism.
This significantly reduces the agent reasoning chain:
- scheduler-flow.md: 10 steps → 8 steps, single code path
- META_PROMPTS.md: 5 MUST blocks → 4, no jq pipeline or branching
- AGENTS.md: 3-method protocol → 2 commands (check + lock)
The agent no longer needs to parse jq output, decide between methods,
handle cascading fallbacks, or perform manual race detection. It runs
two scripts and checks exit codes.
https://claude.ai/code/session_01BpDsVSAkVWtJLnfKxsB9ib
Replace GitHub draft PR as the primary locking mechanism with Nostr
relay-based locks. Each agent generates an ephemeral keypair, publishes
a NIP-78 (Kind 30078) lock event with NIP-40 auto-expiration, and
discards the key. No tokens, no secrets, no git push required.
New script: scripts/agent/nostr-lock.mjs
- check: query relays for active locks, return JSON exclusion set
- lock: claim a task with built-in race detection (exit 3 = lost)
- list: human-readable table of all active locks
The locking fallback chain is now:
1. Nostr lock (no credentials needed, works in any sandbox)
2. git push + draft PR (traditional method)
3. GitHub API via curl (needs GITHUB_TOKEN)
Updated scheduler-flow.md, META_PROMPTS.md, and AGENTS.md to document
all three methods with Nostr as the preferred primary.
https://claude.ai/code/session_01BpDsVSAkVWtJLnfKxsB9ib
Jules agents cannot git push due to sandbox restrictions, which breaks the
draft PR-based distributed lock mechanism. Multiple agents can pick up the
same task because the claim is never visible remotely.
This adds scripts/agent/claim-task-api.sh which creates the remote branch,
started.md log file, and draft PR entirely via curl and the GitHub REST API,
bypassing git push. The scheduler-flow.md, META_PROMPTS.md, and AGENTS.md
are updated to document the fallback: try git push first, fall back to the
API script if push is blocked, fail-closed if neither method works.
https://claude.ai/code/session_01BpDsVSAkVWtJLnfKxsB9ib
The daily and weekly scheduler prompts included a "hard stop" rule that aborted execution if Draft PR creation failed. In restricted environments (like the agent sandbox), `GH_TOKEN` is unavailable, preventing API write access even if git operations work.
This change modifies `docs/agents/prompts/daily-scheduler.md` and `docs/agents/prompts/weekly-scheduler.md` to implement a "soft fail" policy:
- If PR creation fails (e.g., missing credentials), the agent logs the failure in the `_started.md` file summary and proceeds.
- The pushed branch and `_started.md` log file serve as the primary distributed lock.
- Updates the checklist template to accept "FAILED/SKIPPED" for the PR number.
This ensures the scheduler can operate in constrained environments without sacrificing the core distributed locking mechanism.
Co-authored-by: PR0M3TH3AN <[email protected]>
Agents were skipping the pre-flight curl/gh check for in-progress work,
causing duplicate task runs. Root causes:
1. Two-document indirection (meta prompt → scheduler) caused the pre-flight
instructions to get lost when the agent opened the second file
2. No proof-of-execution gate — agents could assert "no conflicts" without
actually running the commands
3. curl|jq pipeline silently fails when jq is unavailable
4. "Step 0" labeling felt like skippable preamble
Changes:
- Make the commands the literal first instruction ("run NOW, paste output")
- Use gh CLI as primary (authenticated, no jq needed), curl as fallback
- Require raw terminal output pasted before proceeding (output gate)
- Rename "Step 0" to "PRE-FLIGHT GATE" to signal it's not optional
- Eliminate duplication between meta prompt and scheduler files
- Add explicit "STOP HERE" checkpoint after command execution
- Add skip-ahead clause for agents arriving from meta prompt
https://claude.ai/code/session_01S7jaQb9ctJ4bzqRhEcm28Q
Replace shared CSV files (AGENT_TASK_LOG.csv, WEEKLY_AGENT_TASK_LOG.csv)
with per-entry files in docs/agents/task-logs/{daily,weekly}/. Each log
entry is now a separate file named YYYY-MM-DD_HH-MM-SS_<agent>_<status>.md,
eliminating git merge conflicts and race conditions when multiple agents
run concurrently.
Updated files:
- daily-scheduler.md: rewritten for directory-based log format
- weekly-scheduler.md: rewritten for directory-based log format
- META_PROMPTS.md: updated pre-flight scan and claiming instructions
- AGENTS.md: updated scheduler reference from CSV to directory-based
Migrated all existing CSV entries to individual files in the new
directory structure.
https://claude.ai/code/session_01P62EWUXwupgxPhpnRejUuz
- Move `CONTEXT.md`, `TODO.md`, `DECISIONS.md`, `TEST_LOG.md` to `context/`, `todo/`, `decisions/`, `test_logs/` directories with timestamps.
- Update `AGENTS.md` and `CLAUDE.md` to define the new workflow: agents must read the latest timestamped file and create a new one when updating.
- Update `daily-scheduler.md` and `weekly-scheduler.md` to initialize tasks using the new file structure.
- Update all daily agent prompts to reference the new directory structure.
- This change prevents merge conflicts on persistent state files by treating them as an append-only log of snapshots.
Co-authored-by: PR0M3TH3AN <[email protected]>
Extracts all hashtag preference related logic into a new controller
`js/ui/profileModal/ProfileHashtagController.js` to reduce the size of `js/ui/profileModalController.js` and improve maintainability.
- Moves `normalizeHashtagTag`, `formatHashtagTag`, `getResolvedHashtagPreferences`, `setHashtagStatus`, `refreshHashtagBackgroundStatus`, `populateHashtagPreferences`, `renderHashtagList`, `sanitizeHashtagList`, `createHashtagListItem`, `persistHashtagPreferences`, `handleAddHashtagPreference`, `handleRemoveHashtagPreference`, `handleHashtagPreferencesChange`, `describeHashtagPreferencesError`.
- Updates `ProfileModalController` to delegate to `ProfileHashtagController`.
- Adds delegate getters/methods in `ProfileModalController` to maintain backward compatibility for tests.
- Reduces `js/ui/profileModalController.js` by ~600 lines.
- Updates file size baseline in `scripts/check-file-size.mjs`.
Passes `npm run lint` and `npm run test:unit`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Inserts a `## TASK COMPLETION & SELF-CORRECTION` section into all daily and weekly agent prompts.
- Instructs agents to complete their task and commit upon success, rather than asking for next steps.
- Provides specific negative examples of questions to avoid.
- Places the instruction before `FINAL NOTE` or `BEGIN` markers to ensure visibility.
Co-authored-by: PR0M3TH3AN <[email protected]>
Agents were repeatedly picking up content-audit-agent because:
1. CSV only updated after task completion — crashes left no trace
2. PR claim check (Step 1.5) was buried and easy to skip
3. No "started" status meant failed runs were invisible to rotation
4. Pre-flight scan was too narrow (checked one agent, not all)
Changes:
- Add Step 0 (mandatory pre-flight) that scans ALL open PRs and CSV
for in-progress work before selecting any task
- Introduce "started" CSV status logged immediately upon claiming,
before task execution begins — ensures rotation advances on crash
- Promote claim check from sub-step 1.5 to full Step 2 with explicit
MANDATORY warnings
- Add 24-hour stale claim timeout for abandoned "started" entries
- Add fallback: if gh is unavailable, CSV "started" rows still work
- Strengthen META_PROMPTS.md to front-load deduplication as Step 0
with explicit "this has happened before" warning language
- Add Quick Reference table summarizing all 5 deduplication layers
https://claude.ai/code/session_017QCJvunQJ7ATr6uZBHV5iA
When multiple agents (Claude Code, Codex, Jules) run schedulers concurrently,
they can pick up the same task because neither has committed yet. This adds a
"Draft PR Lock" protocol: agents must check for and create a draft PR before
starting work, acting as a distributed lock visible to all platforms.
Changes:
- AGENTS.md §12: new "Task Claiming Protocol" subsection with check/claim/race
handling steps
- daily-scheduler.md: new Step 1.5 with concrete gh CLI commands
- weekly-scheduler.md: same Step 1.5 addition
https://claude.ai/code/session_01Vnih5ZARbEmnh3EGTDQAXX
- Add missing FAILURE MODES, OUTPUTS PER RUN, and BEGIN sections to `docs/agents/prompts/weekly/bitvid-interop-agent.md`
- Add missing FAILURE MODES, PR & COMMIT CONVENTIONS, OUTPUTS PER RUN, and BEGIN sections to `docs/agents/prompts/weekly/bitvid-smoke-agent.md`
- Ensure consistency with other agent prompts in the repository
Co-authored-by: PR0M3TH3AN <[email protected]>
- Remove AI generation artifacts (:contentReference) from
docs-code-investigator (4 occurrences)
- Fix require() -> import in event-schema-agent example
(project uses ES modules)
- Clarify nonexistent script reference in const-refactor-agent
(scripts/find-numeric-literals.js must be created, not assumed)
- Close truncated code blocks and add TODO notices in interop-agent
and smoke-agent (both missing Failure Modes and Outputs sections)
No agent mission changes.
https://claude.ai/code/session_01Nz6FJopPp2YHEscJrRAFNv
Update `docs/agents/prompts/weekly-scheduler.md` to include 12 missing agents that were present in the `docs/agents/prompts/weekly` directory but absent from the scheduler list.
This ensures the weekly agent rotation includes all available weekly agents:
- bug-reproducer-agent
- dead-code-agent
- event-schema-agent
- fuzz-agent
- interop-agent
- perf-optimization-agent
- pr-review-agent
- refactor-agent
- smoke-agent
- telemetry-agent
- test-coverage-agent
- weekly-synthesis-agent
Verified that the daily scheduler list is already up-to-date.
Co-authored-by: PR0M3TH3AN <[email protected]>
Add a weekly race condition agent that systematically audits the codebase
for concurrency hazards, timing bugs, and initialization races. The agent
covers relay connection ordering, signer availability, playback fallback
negotiation, cache state consistency, and DOM-ready assumptions.
https://claude.ai/code/session_01AudwR75Y4Bi4WLSYEAJPVW
Add a new daily agent whose job is to keep the daily and weekly scheduler
rosters in sync with the actual prompt files on disk. It scans the prompt
directories, diffs against the roster tables, and applies additions,
removals, or filename corrections as needed.
- New file: docs/agents/prompts/daily/bitvid-scheduler-update-agent.md
- Updated daily-scheduler.md roster (20 -> 21 agents)
https://claude.ai/code/session_01KZQjoJKmPH74AK3QF1pzSq
- Add weekly-scheduler.md with rotation logic for 3 weekly agents
(changelog-agent, frontend-console-debug-agent, perf-deepdive-agent)
- Add separate WEEKLY_AGENT_TASK_LOG.csv to keep weekly and daily
rotations independent
- Mirrors the daily-scheduler.md structure with the same authority
hierarchy, error handling, and log format
https://claude.ai/code/session_017PuKrVuAUbo1seo7jBTbw6