Commit Graph

6844 Commits

Author SHA1 Message Date
YeonGyu-Kim 87e28d2607 docs(prometheus): rewrite AGENTS.md for thin-loader structure
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 19:16:02 +09:00
YeonGyu-Kim 2ea7c49208 Merge pull request #4390 from code-yeongyu/refactor/prometheus-to-prompts-core
refactor(prometheus): extract agent prompt sections to packages/prompts-core (PR4)
2026-05-24 18:47:07 +09:00
YeonGyu-Kim 1f32b885d8 refactor(prometheus): remove migrated section TypeScript files 2026-05-24 18:44:46 +09:00
YeonGyu-Kim 8fc429a5de refactor(prometheus): load prompt variants from prompts-core 2026-05-24 18:44:24 +09:00
YeonGyu-Kim 3806d93dbc feat(prompts-core): wire Prometheus variant table 2026-05-24 18:44:24 +09:00
YeonGyu-Kim fa0500e970 feat(prompts-core): add Prometheus prompt markdown variants 2026-05-24 18:44:24 +09:00
YeonGyu-Kim 4749eab203 Merge pull request #4389 from code-yeongyu/refactor/mode-prompts-to-prompts-core
refactor(mode-prompts): extract search/analyze/team/hyperplan to packages/prompts-core (PR3)
2026-05-24 18:38:03 +09:00
YeonGyu-Kim 803f030b5b Merge remote-tracking branch 'origin/dev' into refactor/mode-prompts-to-prompts-core
# Conflicts:
#	packages/prompts-core/src/index.ts
2026-05-24 18:35:36 +09:00
YeonGyu-Kim 528f083f5a Merge pull request #4388 from code-yeongyu/refactor/atlas-to-prompts-core
refactor(atlas): extract agent prompt variants to packages/prompts-core with runtime injection (PR5)
2026-05-24 18:33:07 +09:00
YeonGyu-Kim 63ef72d1b9 docs(agents): document prompts-core mode prompts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:33:00 +09:00
YeonGyu-Kim 80361c05ab chore(prompts-core): wire markdown prompt packaging
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:32:53 +09:00
YeonGyu-Kim 2c8e2dac41 refactor(mode-prompts): migrate hyperplan prompt
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:32:45 +09:00
YeonGyu-Kim e79baf5910 refactor(mode-prompts): migrate team prompt
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:32:35 +09:00
YeonGyu-Kim 3b7f51d568 refactor(mode-prompts): migrate analyze prompt
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:32:19 +09:00
YeonGyu-Kim 5cefbdbb6d refactor(mode-prompts): migrate search prompt
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:31:17 +09:00
YeonGyu-Kim c187dba56b test(keyword-detector): capture mode prompt baselines
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:30:53 +09:00
YeonGyu-Kim 8451ecd15e docs(atlas): document prompts-core prompt ownership
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:29:36 +09:00
YeonGyu-Kim 582c768b94 refactor(atlas): remove migrated TypeScript prompts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:29:25 +09:00
YeonGyu-Kim 4975c354b2 refactor(atlas): load prompt variants from prompts-core
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:29:12 +09:00
YeonGyu-Kim 96a9365044 build(prompts-core): bundle markdown prompt variants
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:29:05 +09:00
YeonGyu-Kim 91351d73fd feat(prompts-core): support bundled prompt sources
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:57 +09:00
YeonGyu-Kim b77fed28ef feat(prompts-core): add Atlas Opus 4.7 prompt markdown
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:49 +09:00
YeonGyu-Kim 2adcec8f2d feat(prompts-core): add Atlas Kimi prompt markdown
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:49 +09:00
YeonGyu-Kim d5995b385a feat(prompts-core): add Atlas Gemini prompt markdown
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:49 +09:00
YeonGyu-Kim 1923761166 feat(prompts-core): add Atlas GPT prompt markdown
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:49 +09:00
YeonGyu-Kim 565d099495 feat(prompts-core): add Atlas default prompt markdown
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:49 +09:00
YeonGyu-Kim a92e25a196 test(atlas): add prompt byte preservation baselines
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:28:35 +09:00
YeonGyu-Kim 66445241fe Merge pull request #4386 from code-yeongyu/refactor/ultrawork-to-prompts-core
refactor(ultrawork): extract ultrawork prompts to packages/prompts-core (PR2)
2026-05-24 18:27:11 +09:00
YeonGyu-Kim 79beeeee1f docs: document ultrawork prompt markdown location
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:20:33 +09:00
YeonGyu-Kim d217efc195 build(prompts): inline markdown prompt imports
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:20:27 +09:00
YeonGyu-Kim e772c46819 refactor(ultrawork): move planner prompt to prompts-core
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:20:18 +09:00
YeonGyu-Kim e51acd0ad3 refactor(ultrawork): move gemini prompt to prompts-core
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:20:11 +09:00
YeonGyu-Kim a818bbd99c refactor(ultrawork): move gpt prompt to prompts-core
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:20:04 +09:00
YeonGyu-Kim 9c366cce3a refactor(ultrawork): move default prompt to prompts-core
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:19:56 +09:00
YeonGyu-Kim 39b3cbcbb5 chore(ultrawork): capture prompt baseline hashes
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 18:19:49 +09:00
YeonGyu-Kim 46ad6bfdb4 Merge pull request #4385 from code-yeongyu/refactor/prompts-core-foundation
refactor(prompts-core): add packages/prompts-core foundation with model-family detector relocation
2026-05-24 17:55:32 +09:00
YeonGyu-Kim 436c618706 fix(prompts-core): block prompt path traversal
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:50:18 +09:00
YeonGyu-Kim 74d5f7018d chore(prompts-core): wire package typecheck
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:28:09 +09:00
YeonGyu-Kim da0fa83f6c test(prompts-core): audit opencode coupling
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:28:09 +09:00
YeonGyu-Kim c44a6bdb2a feat(prompts-core): add prompt loader
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:28:09 +09:00
YeonGyu-Kim 6301bcf059 feat(prompts-core): add variant resolver
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:17:08 +09:00
YeonGyu-Kim 4338ddb898 feat(prompts-core): add package skeleton
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:16:49 +09:00
YeonGyu-Kim 87de056308 refactor(model-core): move model family detectors
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-24 17:16:40 +09:00
YeonGyu-Kim e1e9f348f0 Merge pull request #4382 from code-yeongyu/feat/ultrawork-prompt-tdd-evidence-tightening
feat(ultrawork): enforce TDD, scenario contract, durable notepad, reviewer gate
2026-05-24 15:55:43 +09:00
YeonGyu-Kim d073bf1bdf feat(ultrawork): enforce TDD, scenario contract, durable notepad, reviewer gate
Closes five gaps in the ultrawork prompt versus codex-plugins' parallel
directive, applied to all three model variants (default/Claude, GPT, Gemini)
with prompt-engineering entropy gate (each addition encodes a distinct
binding boolean, not narrative reinforcement):

1. TDD-MANDATORY (was conditional "when test infrastructure exists"):
   every production change follows RED -> GREEN -> SURFACE. Failing test
   first, capture assertion msg, smallest change to flip green, exercise
   real surface, capture artifact. Exemption whitelist: formatting /
   comment-only / version bump / rename-only, each must be justified
   in writing; unjustified exemption = rejection.

2. Scenario contract (was free-form Test Plan Template): require 3+
   scenarios upfront covering happy path, edge (boundary / empty /
   malformed / concurrent), adjacent-surface regression. Each scenario
   binds a binary pass condition, a real-surface artifact source, and
   a test file + test id written test-first.

3. RED->GREEN evidence capture (was "all tests pass"): every scenario
   requires TWO captured artifacts -- RED assertion msg before the
   change AND GREEN assertion msg after -- alongside the real-surface
   artifact (tmux / curl / browser / Playwright / computer-use /
   CLI stdout / parsed config / DB diff). Tests are the floor (always
   required); surface artifact is the ceiling (also required).

4. Durable notepad: mktemp -t ulw-*.md with append-only sections
   (Plan, Scenarios, Now, Todo, Findings, Learnings). Survives context
   loss; resume by re-reading.

5. Reviewer gate: trigger when user said strictly / rigorously /
   "deeply", or task touches 3+ files / 20+ turns / 30+ min, or it is
   refactor / migration / perf / security work. Reviewer verdict is
   binding ("looks good but..." = rejection). Loop until unconditional
   approval.

Plus: TODO format upgraded from vague "track every step" to atomic
`path: <action> for <scenario-id> -- verify by <check>` with a GOOD
test-first / impl pair example and a BAD list including
"production code before its failing test".

Per-variant adaptation:
- default.ts (Claude): full structured sections.
- gpt.ts (GPT-5.x): outcome-first prose, shorter prose per gpt-5.5 guide.
- gemini.ts: explicit enforcement framing + anti-optimism checkpoint
  upgraded with a TDD-violation question (#7).

Verified by:
- bun test src/hooks/keyword-detector/ (119 pass / 0 fail).
- lsp_diagnostics clean on all three files.
- Module-load smoke test confirms each exported message string parses
  and contains the new section anchors (TDD MANDATORY, SCENARIO
  CONTRACT, DURABLE NOTEPAD, REVIEWER GATE).

Char deltas (directive body only):
- default 13646 -> 17144 (+26%)
- gpt     6740  -> 9215  (+37%, was the leanest start)
- gemini  14196 -> 16136 (+14%)

Existing tests only assert presence of "ULTRAWORK MODE ENABLED!" which
is preserved verbatim in every variant.
2026-05-24 15:48:59 +09:00
YeonGyu-Kim 39a549a3df Merge pull request #4381 from code-yeongyu/fix/team-mode-closure-prompts
fix(team-mode): make lead close teams on its own initiative
2026-05-24 15:37:28 +09:00
YeonGyu-Kim 5f1fb0c52a fix(team-mode): make lead close teams on its own initiative
The lead currently leaves teams alive after the task list drains because
none of the prompt surfaces tell it WHEN to close or HOW. omx-style
'self-closing' behavior was missing for four reasons (diagnosed via
prompt-engineering A/B/C: wrong / misframed / missing):

1. builtin team-mode skill 'Lifecycle' (B+C): 'phase ends / shape
   outgrown' is qualitative, so the model maps it to 'wait for user'.
   Step 6 jumped to team_delete without the request/approve pair the
   tool contract requires. Replaced with a 'Closure Contract' (a
   computable predicate over team_task_list + team_status) and an
   explicit 'Closure Sequence' (request -> approve -> delete, with
   force=true reserved for unrecoverable paths only).

2. TEAM_MESSAGE keyword injection (C): spent 100%% of its one-shot
   budget on routing ('do not substitute delegate_task'), 0%% on
   closure. Added the same closure rule in compressed form. Kept the
   'NEVER substitute with delegate_task' literal that
   keyword-detector/index.test.ts depends on.

3. team-mode-status-injector body (C): the only per-session injection
   for team mode had no closure obligation. Replaced the optional
   'load the team-mode skill ... otherwise use the team_* tools'
   sentence with a 'Closure invariant' clause that ties the check to
   every team_task_update.

4. member-guidance Wrap-up (A+B): step 3 said 'so the lead can decide
   whether to request shutdown', but team_shutdown_request is
   lead-only - members cannot initiate it. Step ordering also placed
   the completion message before team_task_update, so the lead's
   closable check would see stale data. Reordered to
   task_update -> check task_list for new work -> if nothing left,
   send a single 'closure-ready' message and idle. Test assertion
   updated to match the new accurate contract.

Also: stripped Korean alternation from TEAM_PATTERN per directive
('절대로 코드 내에 한국어 적지 마라'). Pattern is now
/\\bteam[\\s_-]?mode\\b/i. Removed 4 Korean test cases
(2 positive triggers + 2 false-positive guards) that the pattern no
longer needs to defend, and updated the keyword-detector AGENTS.md
row.

Net: -71 lines across prompt surfaces. The Closure Contract is the
only addition; everything else tightened.

Tests: 428/428 pass across src/features/team-mode/,
src/features/builtin-skills/, src/hooks/keyword-detector/,
src/hooks/team-mode-status-injector/, src/hooks/team-mailbox-injector/,
src/hooks/team-tool-gating/, src/hooks/team-session-events/.
LSP: no errors introduced (one pre-existing error in
keyword-detector/index.test.ts confirmed pre-existing on dev).
2026-05-24 15:21:24 +09:00
YeonGyu-Kim a4dcbb6bef docs(publish): use Jobdori bot for releases 2026-05-24 15:08:15 +09:00
YeonGyu-Kim 1473f93f5f Merge pull request #4380 from code-yeongyu/fix/ralph-loop-oracle-double-fire-race
fix(ralph-loop): skip premature verification failure when oracle dispatch is in flight
2026-05-24 15:03:58 +09:00
YeonGyu-Kim cdc937548f chore: update bun.lock 2026-05-24 15:01:58 +09:00