oh-my-opencode-gpt-slim 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +12 -10
- package/dist/config/schema/commands.d.ts +2 -0
- package/dist/config/schema/oh-my-opencode-config.d.ts +2 -0
- package/dist/features/builtin-commands/templates/skill-creator.d.ts +1 -0
- package/dist/features/builtin-commands/types.d.ts +1 -1
- package/dist/index.js +304 -266
- package/dist/oh-my-opencode.schema.json +2 -0
- package/package.json +10 -10
package/dist/cli/index.js
CHANGED
|
@@ -2145,7 +2145,7 @@ var package_default;
|
|
|
2145
2145
|
var init_package = __esm(() => {
|
|
2146
2146
|
package_default = {
|
|
2147
2147
|
name: "oh-my-opencode-gpt-slim",
|
|
2148
|
-
version: "0.1.
|
|
2148
|
+
version: "0.1.2",
|
|
2149
2149
|
description: "GPT-optimized lean fork of oh-my-openagent \u2014 33 hooks removed, 5 tools removed, Sisyphus prompt rewritten based on OpenAI Codex prompt.md",
|
|
2150
2150
|
main: "dist/index.js",
|
|
2151
2151
|
types: "dist/index.d.ts",
|
|
@@ -2223,15 +2223,15 @@ var init_package = __esm(() => {
|
|
|
2223
2223
|
typescript: "^5.7.3"
|
|
2224
2224
|
},
|
|
2225
2225
|
optionalDependencies: {
|
|
2226
|
-
"oh-my-opencode-gpt-slim-darwin-arm64": "0.1.
|
|
2227
|
-
"oh-my-opencode-gpt-slim-darwin-x64": "0.1.
|
|
2228
|
-
"oh-my-opencode-gpt-slim-darwin-x64-baseline": "0.1.
|
|
2229
|
-
"oh-my-opencode-gpt-slim-linux-arm64": "0.1.
|
|
2230
|
-
"oh-my-opencode-gpt-slim-linux-arm64-musl": "0.1.
|
|
2231
|
-
"oh-my-opencode-gpt-slim-linux-x64": "0.1.
|
|
2232
|
-
"oh-my-opencode-gpt-slim-linux-x64-baseline": "0.1.
|
|
2233
|
-
"oh-my-opencode-gpt-slim-linux-x64-musl": "0.1.
|
|
2234
|
-
"oh-my-opencode-gpt-slim-linux-x64-musl-baseline": "0.1.
|
|
2226
|
+
"oh-my-opencode-gpt-slim-darwin-arm64": "0.1.2",
|
|
2227
|
+
"oh-my-opencode-gpt-slim-darwin-x64": "0.1.2",
|
|
2228
|
+
"oh-my-opencode-gpt-slim-darwin-x64-baseline": "0.1.2",
|
|
2229
|
+
"oh-my-opencode-gpt-slim-linux-arm64": "0.1.2",
|
|
2230
|
+
"oh-my-opencode-gpt-slim-linux-arm64-musl": "0.1.2",
|
|
2231
|
+
"oh-my-opencode-gpt-slim-linux-x64": "0.1.2",
|
|
2232
|
+
"oh-my-opencode-gpt-slim-linux-x64-baseline": "0.1.2",
|
|
2233
|
+
"oh-my-opencode-gpt-slim-linux-x64-musl": "0.1.2",
|
|
2234
|
+
"oh-my-opencode-gpt-slim-linux-x64-musl-baseline": "0.1.2"
|
|
2235
2235
|
},
|
|
2236
2236
|
overrides: {
|
|
2237
2237
|
"@opencode-ai/sdk": "^1.2.17"
|
|
@@ -24052,11 +24052,13 @@ var CommentCheckerConfigSchema = exports_external.object({
|
|
|
24052
24052
|
});
|
|
24053
24053
|
// src/config/schema/commands.ts
|
|
24054
24054
|
var BuiltinCommandNameSchema = exports_external.enum([
|
|
24055
|
+
"handoff",
|
|
24055
24056
|
"init-deep",
|
|
24056
24057
|
"ralph-loop",
|
|
24057
24058
|
"ulw-loop",
|
|
24058
24059
|
"cancel-ralph",
|
|
24059
24060
|
"refactor",
|
|
24061
|
+
"skill-creator",
|
|
24060
24062
|
"start-work",
|
|
24061
24063
|
"stop-continuation"
|
|
24062
24064
|
]);
|
|
@@ -15,6 +15,8 @@ export declare const OhMyOpenCodeConfigSchema: z.ZodObject<{
|
|
|
15
15
|
}>>>;
|
|
16
16
|
disabled_hooks: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
17
17
|
disabled_commands: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
18
|
+
"skill-creator": "skill-creator";
|
|
19
|
+
handoff: "handoff";
|
|
18
20
|
"init-deep": "init-deep";
|
|
19
21
|
"ralph-loop": "ralph-loop";
|
|
20
22
|
"ulw-loop": "ulw-loop";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SKILL_CREATOR_TEMPLATE = "# Skill Creator Command\n\nLoad the built-in skill-creator skill for creating, refining, or migrating SKILL.md-based skills.\n\n## How To Use This Command\n\n1. Call the skill tool with the built-in skill name:\n\n`skill(name=\"skill-creator\")`\n\n2. After the skill loads, use its guidance to:\n - create a new skill\n - refine an existing SKILL.md\n - improve naming, description, and structure\n - choose between local skill files and built-in skills\n\n## User Context\n\nTreat any command arguments as the user's goal or context for the skill work.\n\n## Action\n\nCall `skill(name=\"skill-creator\")` now, then continue using the loaded guidance and the user's request.";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CommandDefinition } from "../claude-code-command-loader";
|
|
2
|
-
export type BuiltinCommandName = "init-deep" | "ralph-loop" | "cancel-ralph" | "ulw-loop" | "refactor" | "start-work" | "stop-continuation" | "handoff";
|
|
2
|
+
export type BuiltinCommandName = "init-deep" | "ralph-loop" | "cancel-ralph" | "ulw-loop" | "refactor" | "skill-creator" | "start-work" | "stop-continuation" | "handoff";
|
|
3
3
|
export interface BuiltinCommandConfig {
|
|
4
4
|
disabled_commands?: BuiltinCommandName[];
|
|
5
5
|
}
|
package/dist/index.js
CHANGED
|
@@ -12308,7 +12308,7 @@ function initConfigContext(binary, version) {
|
|
|
12308
12308
|
// package.json
|
|
12309
12309
|
var package_default = {
|
|
12310
12310
|
name: "oh-my-opencode-gpt-slim",
|
|
12311
|
-
version: "0.1.
|
|
12311
|
+
version: "0.1.2",
|
|
12312
12312
|
description: "GPT-optimized lean fork of oh-my-openagent \u2014 33 hooks removed, 5 tools removed, Sisyphus prompt rewritten based on OpenAI Codex prompt.md",
|
|
12313
12313
|
main: "dist/index.js",
|
|
12314
12314
|
types: "dist/index.d.ts",
|
|
@@ -12386,15 +12386,15 @@ var package_default = {
|
|
|
12386
12386
|
typescript: "^5.7.3"
|
|
12387
12387
|
},
|
|
12388
12388
|
optionalDependencies: {
|
|
12389
|
-
"oh-my-opencode-gpt-slim-darwin-arm64": "0.1.
|
|
12390
|
-
"oh-my-opencode-gpt-slim-darwin-x64": "0.1.
|
|
12391
|
-
"oh-my-opencode-gpt-slim-darwin-x64-baseline": "0.1.
|
|
12392
|
-
"oh-my-opencode-gpt-slim-linux-arm64": "0.1.
|
|
12393
|
-
"oh-my-opencode-gpt-slim-linux-arm64-musl": "0.1.
|
|
12394
|
-
"oh-my-opencode-gpt-slim-linux-x64": "0.1.
|
|
12395
|
-
"oh-my-opencode-gpt-slim-linux-x64-baseline": "0.1.
|
|
12396
|
-
"oh-my-opencode-gpt-slim-linux-x64-musl": "0.1.
|
|
12397
|
-
"oh-my-opencode-gpt-slim-linux-x64-musl-baseline": "0.1.
|
|
12389
|
+
"oh-my-opencode-gpt-slim-darwin-arm64": "0.1.2",
|
|
12390
|
+
"oh-my-opencode-gpt-slim-darwin-x64": "0.1.2",
|
|
12391
|
+
"oh-my-opencode-gpt-slim-darwin-x64-baseline": "0.1.2",
|
|
12392
|
+
"oh-my-opencode-gpt-slim-linux-arm64": "0.1.2",
|
|
12393
|
+
"oh-my-opencode-gpt-slim-linux-arm64-musl": "0.1.2",
|
|
12394
|
+
"oh-my-opencode-gpt-slim-linux-x64": "0.1.2",
|
|
12395
|
+
"oh-my-opencode-gpt-slim-linux-x64-baseline": "0.1.2",
|
|
12396
|
+
"oh-my-opencode-gpt-slim-linux-x64-musl": "0.1.2",
|
|
12397
|
+
"oh-my-opencode-gpt-slim-linux-x64-musl-baseline": "0.1.2"
|
|
12398
12398
|
},
|
|
12399
12399
|
overrides: {
|
|
12400
12400
|
"@opencode-ai/sdk": "^1.2.17"
|
|
@@ -33790,11 +33790,13 @@ var CommentCheckerConfigSchema = exports_external.object({
|
|
|
33790
33790
|
});
|
|
33791
33791
|
// src/config/schema/commands.ts
|
|
33792
33792
|
var BuiltinCommandNameSchema = exports_external.enum([
|
|
33793
|
+
"handoff",
|
|
33793
33794
|
"init-deep",
|
|
33794
33795
|
"ralph-loop",
|
|
33795
33796
|
"ulw-loop",
|
|
33796
33797
|
"cancel-ralph",
|
|
33797
33798
|
"refactor",
|
|
33799
|
+
"skill-creator",
|
|
33798
33800
|
"start-work",
|
|
33799
33801
|
"stop-continuation"
|
|
33800
33802
|
]);
|
|
@@ -56560,6 +56562,185 @@ async function loadOpencodeProjectCommands(directory) {
|
|
|
56560
56562
|
const commands2 = await loadCommandsFromDir(opencodeProjectDir, "opencode-project");
|
|
56561
56563
|
return commandsToRecord(commands2);
|
|
56562
56564
|
}
|
|
56565
|
+
// src/features/builtin-commands/templates/handoff.ts
|
|
56566
|
+
var HANDOFF_TEMPLATE = `# Handoff Command
|
|
56567
|
+
|
|
56568
|
+
## Purpose
|
|
56569
|
+
|
|
56570
|
+
Use /handoff when:
|
|
56571
|
+
- The current session context is getting too long and quality is degrading
|
|
56572
|
+
- You want to start fresh while preserving essential context from this session
|
|
56573
|
+
- The context window is approaching capacity
|
|
56574
|
+
|
|
56575
|
+
This creates a detailed context summary that can be used to continue work in a new session.
|
|
56576
|
+
|
|
56577
|
+
---
|
|
56578
|
+
|
|
56579
|
+
# PHASE 0: VALIDATE REQUEST
|
|
56580
|
+
|
|
56581
|
+
Before proceeding, confirm:
|
|
56582
|
+
- [ ] There is meaningful work or context in this session to preserve
|
|
56583
|
+
- [ ] The user wants to create a handoff summary (not just asking about it)
|
|
56584
|
+
|
|
56585
|
+
If the session is nearly empty or has no meaningful context, inform the user there is nothing substantial to hand off.
|
|
56586
|
+
|
|
56587
|
+
---
|
|
56588
|
+
|
|
56589
|
+
# PHASE 1: GATHER PROGRAMMATIC CONTEXT
|
|
56590
|
+
|
|
56591
|
+
Execute these tools to gather concrete data:
|
|
56592
|
+
|
|
56593
|
+
1. session_read({ session_id: "$SESSION_ID" }) \u2014 full session history
|
|
56594
|
+
2. todoread() \u2014 current task progress
|
|
56595
|
+
3. Bash({ command: "git diff --stat HEAD~10..HEAD" }) \u2014 recent file changes
|
|
56596
|
+
4. Bash({ command: "git status --porcelain" }) \u2014 uncommitted changes
|
|
56597
|
+
|
|
56598
|
+
Suggested execution order:
|
|
56599
|
+
|
|
56600
|
+
\`\`\`
|
|
56601
|
+
session_read({ session_id: "$SESSION_ID" })
|
|
56602
|
+
todoread()
|
|
56603
|
+
Bash({ command: "git diff --stat HEAD~10..HEAD" })
|
|
56604
|
+
Bash({ command: "git status --porcelain" })
|
|
56605
|
+
\`\`\`
|
|
56606
|
+
|
|
56607
|
+
Analyze the gathered outputs to understand:
|
|
56608
|
+
- What the user asked for (exact wording)
|
|
56609
|
+
- What work was completed
|
|
56610
|
+
- What tasks remain incomplete (include todo state)
|
|
56611
|
+
- What decisions were made
|
|
56612
|
+
- What files were modified or discussed (include git diff/stat + status)
|
|
56613
|
+
- What patterns, constraints, or preferences were established
|
|
56614
|
+
|
|
56615
|
+
---
|
|
56616
|
+
|
|
56617
|
+
# PHASE 2: EXTRACT CONTEXT
|
|
56618
|
+
|
|
56619
|
+
Write the context summary from first person perspective ("I did...", "I told you...").
|
|
56620
|
+
|
|
56621
|
+
Focus on:
|
|
56622
|
+
- Capabilities and behavior, not file-by-file implementation details
|
|
56623
|
+
- What matters for continuing the work
|
|
56624
|
+
- Avoiding excessive implementation details (variable names, storage keys, constants) unless critical
|
|
56625
|
+
- USER REQUESTS (AS-IS) must be verbatim (do not paraphrase)
|
|
56626
|
+
- EXPLICIT CONSTRAINTS must be verbatim only (do not invent)
|
|
56627
|
+
|
|
56628
|
+
Questions to consider when extracting:
|
|
56629
|
+
- What did I just do or implement?
|
|
56630
|
+
- What instructions did I already give which are still relevant (e.g. follow patterns in the codebase)?
|
|
56631
|
+
- What files did I tell you are important or that I am working on?
|
|
56632
|
+
- Did I provide a plan or spec that should be included?
|
|
56633
|
+
- What did I already tell you that is important (libraries, patterns, constraints, preferences)?
|
|
56634
|
+
- What important technical details did I discover (APIs, methods, patterns)?
|
|
56635
|
+
- What caveats, limitations, or open questions did I find?
|
|
56636
|
+
|
|
56637
|
+
---
|
|
56638
|
+
|
|
56639
|
+
# PHASE 3: FORMAT OUTPUT
|
|
56640
|
+
|
|
56641
|
+
Generate a handoff summary using this exact format:
|
|
56642
|
+
|
|
56643
|
+
\`\`\`
|
|
56644
|
+
HANDOFF CONTEXT
|
|
56645
|
+
===============
|
|
56646
|
+
|
|
56647
|
+
USER REQUESTS (AS-IS)
|
|
56648
|
+
---------------------
|
|
56649
|
+
- [Exact verbatim user requests - NOT paraphrased]
|
|
56650
|
+
|
|
56651
|
+
GOAL
|
|
56652
|
+
----
|
|
56653
|
+
[One sentence describing what should be done next]
|
|
56654
|
+
|
|
56655
|
+
WORK COMPLETED
|
|
56656
|
+
--------------
|
|
56657
|
+
- [First person bullet points of what was done]
|
|
56658
|
+
- [Include specific file paths when relevant]
|
|
56659
|
+
- [Note key implementation decisions]
|
|
56660
|
+
|
|
56661
|
+
CURRENT STATE
|
|
56662
|
+
-------------
|
|
56663
|
+
- [Current state of the codebase or task]
|
|
56664
|
+
- [Build/test status if applicable]
|
|
56665
|
+
- [Any environment or configuration state]
|
|
56666
|
+
|
|
56667
|
+
PENDING TASKS
|
|
56668
|
+
-------------
|
|
56669
|
+
- [Tasks that were planned but not completed]
|
|
56670
|
+
- [Next logical steps to take]
|
|
56671
|
+
- [Any blockers or issues encountered]
|
|
56672
|
+
- [Include current todo state from todoread()]
|
|
56673
|
+
|
|
56674
|
+
KEY FILES
|
|
56675
|
+
---------
|
|
56676
|
+
- [path/to/file1] - [brief role description]
|
|
56677
|
+
- [path/to/file2] - [brief role description]
|
|
56678
|
+
(Maximum 10 files, prioritized by importance)
|
|
56679
|
+
- (Include files from git diff/stat and git status)
|
|
56680
|
+
|
|
56681
|
+
IMPORTANT DECISIONS
|
|
56682
|
+
-------------------
|
|
56683
|
+
- [Technical decisions that were made and why]
|
|
56684
|
+
- [Trade-offs that were considered]
|
|
56685
|
+
- [Patterns or conventions established]
|
|
56686
|
+
|
|
56687
|
+
EXPLICIT CONSTRAINTS
|
|
56688
|
+
--------------------
|
|
56689
|
+
- [Verbatim constraints only - from user or existing AGENTS.md]
|
|
56690
|
+
- If none, write: None
|
|
56691
|
+
|
|
56692
|
+
CONTEXT FOR CONTINUATION
|
|
56693
|
+
------------------------
|
|
56694
|
+
- [What the next session needs to know to continue]
|
|
56695
|
+
- [Warnings or gotchas to be aware of]
|
|
56696
|
+
- [References to documentation if relevant]
|
|
56697
|
+
\`\`\`
|
|
56698
|
+
|
|
56699
|
+
Rules for the summary:
|
|
56700
|
+
- Plain text with bullets
|
|
56701
|
+
- No markdown headers with # (use the format above with dashes)
|
|
56702
|
+
- No bold, italic, or code fences within content
|
|
56703
|
+
- Use workspace-relative paths for files
|
|
56704
|
+
- Keep it focused - only include what matters for continuation
|
|
56705
|
+
- Pick an appropriate length based on complexity
|
|
56706
|
+
- USER REQUESTS (AS-IS) and EXPLICIT CONSTRAINTS must be verbatim only
|
|
56707
|
+
|
|
56708
|
+
---
|
|
56709
|
+
|
|
56710
|
+
# PHASE 4: PROVIDE INSTRUCTIONS
|
|
56711
|
+
|
|
56712
|
+
After generating the summary, instruct the user:
|
|
56713
|
+
|
|
56714
|
+
\`\`\`
|
|
56715
|
+
---
|
|
56716
|
+
|
|
56717
|
+
TO CONTINUE IN A NEW SESSION:
|
|
56718
|
+
|
|
56719
|
+
1. Press 'n' in OpenCode TUI to open a new session, or run 'opencode' in a new terminal
|
|
56720
|
+
2. Paste the HANDOFF CONTEXT above as your first message
|
|
56721
|
+
3. Add your request: "Continue from the handoff context above. [Your next task]"
|
|
56722
|
+
|
|
56723
|
+
The new session will have all context needed to continue seamlessly.
|
|
56724
|
+
\`\`\`
|
|
56725
|
+
|
|
56726
|
+
---
|
|
56727
|
+
|
|
56728
|
+
# IMPORTANT CONSTRAINTS
|
|
56729
|
+
|
|
56730
|
+
- DO NOT attempt to programmatically create new sessions (no API available to agents)
|
|
56731
|
+
- DO provide a self-contained summary that works without access to this session
|
|
56732
|
+
- DO include workspace-relative file paths
|
|
56733
|
+
- DO NOT include sensitive information (API keys, credentials, secrets)
|
|
56734
|
+
- DO NOT exceed 10 files in the KEY FILES section
|
|
56735
|
+
- DO keep the GOAL section to a single sentence or short paragraph
|
|
56736
|
+
|
|
56737
|
+
---
|
|
56738
|
+
|
|
56739
|
+
# EXECUTE NOW
|
|
56740
|
+
|
|
56741
|
+
Begin by gathering programmatic context, then synthesize the handoff summary.
|
|
56742
|
+
`;
|
|
56743
|
+
|
|
56563
56744
|
// src/features/builtin-commands/templates/init-deep.ts
|
|
56564
56745
|
var INIT_DEEP_TEMPLATE = `# /init-deep
|
|
56565
56746
|
|
|
@@ -56867,87 +57048,6 @@ Hierarchy:
|
|
|
56867
57048
|
- **Generic content**: Remove anything that applies to ALL projects
|
|
56868
57049
|
- **Verbose style**: Telegraphic or die`;
|
|
56869
57050
|
|
|
56870
|
-
// src/features/builtin-commands/templates/ralph-loop.ts
|
|
56871
|
-
var RALPH_LOOP_TEMPLATE = `You are starting a Ralph Loop - a self-referential development loop that runs until task completion.
|
|
56872
|
-
|
|
56873
|
-
## How Ralph Loop Works
|
|
56874
|
-
|
|
56875
|
-
1. You will work on the task continuously
|
|
56876
|
-
2. When you believe the task is FULLY complete, output: \`<promise>{{COMPLETION_PROMISE}}</promise>\`
|
|
56877
|
-
3. If you don't output the promise, the loop will automatically inject another prompt to continue
|
|
56878
|
-
4. Maximum iterations: Configurable (default 100)
|
|
56879
|
-
|
|
56880
|
-
## Rules
|
|
56881
|
-
|
|
56882
|
-
- Focus on completing the task fully, not partially
|
|
56883
|
-
- Don't output the completion promise until the task is truly done
|
|
56884
|
-
- Each iteration should make meaningful progress toward the goal
|
|
56885
|
-
- If stuck, try different approaches
|
|
56886
|
-
- Use todos to track your progress
|
|
56887
|
-
|
|
56888
|
-
## Exit Conditions
|
|
56889
|
-
|
|
56890
|
-
1. **Completion**: Output your completion promise tag when fully complete
|
|
56891
|
-
2. **Max Iterations**: Loop stops automatically at limit
|
|
56892
|
-
3. **Cancel**: User runs \`/cancel-ralph\` command
|
|
56893
|
-
|
|
56894
|
-
## Your Task
|
|
56895
|
-
|
|
56896
|
-
Parse the arguments below and begin working on the task. The format is:
|
|
56897
|
-
\`"task description" [--completion-promise=TEXT] [--max-iterations=N] [--strategy=reset|continue]\`
|
|
56898
|
-
|
|
56899
|
-
Default completion promise is "DONE" and default max iterations is 100.`;
|
|
56900
|
-
var ULW_LOOP_TEMPLATE = `You are starting an ULTRAWORK Loop - a self-referential development loop that runs until verified completion.
|
|
56901
|
-
|
|
56902
|
-
## How ULTRAWORK Loop Works
|
|
56903
|
-
|
|
56904
|
-
1. You will work on the task continuously
|
|
56905
|
-
2. When you believe the work is complete, output: \`<promise>{{COMPLETION_PROMISE}}</promise>\`
|
|
56906
|
-
3. That does NOT finish the loop yet. The system will require Oracle verification
|
|
56907
|
-
4. The loop only ends after the system confirms Oracle verified the result
|
|
56908
|
-
5. There is no iteration limit
|
|
56909
|
-
|
|
56910
|
-
## Rules
|
|
56911
|
-
|
|
56912
|
-
- Focus on finishing the task completely
|
|
56913
|
-
- After you emit the completion promise, run Oracle verification when instructed
|
|
56914
|
-
- Do not treat DONE as final completion until Oracle verifies it
|
|
56915
|
-
|
|
56916
|
-
## Exit Conditions
|
|
56917
|
-
|
|
56918
|
-
1. **Verified Completion**: Oracle verifies the result and the system confirms it
|
|
56919
|
-
2. **Cancel**: User runs \`/cancel-ralph\`
|
|
56920
|
-
|
|
56921
|
-
## Your Task
|
|
56922
|
-
|
|
56923
|
-
Parse the arguments below and begin working on the task. The format is:
|
|
56924
|
-
\`"task description" [--completion-promise=TEXT] [--strategy=reset|continue]\`
|
|
56925
|
-
|
|
56926
|
-
Default completion promise is "DONE".`;
|
|
56927
|
-
var CANCEL_RALPH_TEMPLATE = `Cancel the currently active Ralph Loop.
|
|
56928
|
-
|
|
56929
|
-
This will:
|
|
56930
|
-
1. Stop the loop from continuing
|
|
56931
|
-
2. Clear the loop state file
|
|
56932
|
-
3. Allow the session to end normally
|
|
56933
|
-
|
|
56934
|
-
Check if a loop is active and cancel it. Inform the user of the result.`;
|
|
56935
|
-
|
|
56936
|
-
// src/features/builtin-commands/templates/stop-continuation.ts
|
|
56937
|
-
var STOP_CONTINUATION_TEMPLATE = `Stop all continuation mechanisms for the current session.
|
|
56938
|
-
|
|
56939
|
-
This command will:
|
|
56940
|
-
1. Stop the todo-continuation-enforcer from automatically continuing incomplete tasks
|
|
56941
|
-
2. Cancel any active Ralph Loop
|
|
56942
|
-
3. Clear the boulder state for the current project
|
|
56943
|
-
|
|
56944
|
-
After running this command:
|
|
56945
|
-
- The session will not auto-continue when idle
|
|
56946
|
-
- You can manually continue work when ready
|
|
56947
|
-
- The stop state is per-session and clears when the session ends
|
|
56948
|
-
|
|
56949
|
-
Use this when you need to pause automated continuation and take manual control.`;
|
|
56950
|
-
|
|
56951
57051
|
// src/features/builtin-commands/templates/refactor.ts
|
|
56952
57052
|
var REFACTOR_TEMPLATE = `# Intelligent Refactor Command
|
|
56953
57053
|
|
|
@@ -57569,6 +57669,97 @@ $ARGUMENTS
|
|
|
57569
57669
|
</user-request>
|
|
57570
57670
|
`;
|
|
57571
57671
|
|
|
57672
|
+
// src/features/builtin-commands/templates/ralph-loop.ts
|
|
57673
|
+
var RALPH_LOOP_TEMPLATE = `You are starting a Ralph Loop - a self-referential development loop that runs until task completion.
|
|
57674
|
+
|
|
57675
|
+
## How Ralph Loop Works
|
|
57676
|
+
|
|
57677
|
+
1. You will work on the task continuously
|
|
57678
|
+
2. When you believe the task is FULLY complete, output: \`<promise>{{COMPLETION_PROMISE}}</promise>\`
|
|
57679
|
+
3. If you don't output the promise, the loop will automatically inject another prompt to continue
|
|
57680
|
+
4. Maximum iterations: Configurable (default 100)
|
|
57681
|
+
|
|
57682
|
+
## Rules
|
|
57683
|
+
|
|
57684
|
+
- Focus on completing the task fully, not partially
|
|
57685
|
+
- Don't output the completion promise until the task is truly done
|
|
57686
|
+
- Each iteration should make meaningful progress toward the goal
|
|
57687
|
+
- If stuck, try different approaches
|
|
57688
|
+
- Use todos to track your progress
|
|
57689
|
+
|
|
57690
|
+
## Exit Conditions
|
|
57691
|
+
|
|
57692
|
+
1. **Completion**: Output your completion promise tag when fully complete
|
|
57693
|
+
2. **Max Iterations**: Loop stops automatically at limit
|
|
57694
|
+
3. **Cancel**: User runs \`/cancel-ralph\` command
|
|
57695
|
+
|
|
57696
|
+
## Your Task
|
|
57697
|
+
|
|
57698
|
+
Parse the arguments below and begin working on the task. The format is:
|
|
57699
|
+
\`"task description" [--completion-promise=TEXT] [--max-iterations=N] [--strategy=reset|continue]\`
|
|
57700
|
+
|
|
57701
|
+
Default completion promise is "DONE" and default max iterations is 100.`;
|
|
57702
|
+
var ULW_LOOP_TEMPLATE = `You are starting an ULTRAWORK Loop - a self-referential development loop that runs until verified completion.
|
|
57703
|
+
|
|
57704
|
+
## How ULTRAWORK Loop Works
|
|
57705
|
+
|
|
57706
|
+
1. You will work on the task continuously
|
|
57707
|
+
2. When you believe the work is complete, output: \`<promise>{{COMPLETION_PROMISE}}</promise>\`
|
|
57708
|
+
3. That does NOT finish the loop yet. The system will require Oracle verification
|
|
57709
|
+
4. The loop only ends after the system confirms Oracle verified the result
|
|
57710
|
+
5. There is no iteration limit
|
|
57711
|
+
|
|
57712
|
+
## Rules
|
|
57713
|
+
|
|
57714
|
+
- Focus on finishing the task completely
|
|
57715
|
+
- After you emit the completion promise, run Oracle verification when instructed
|
|
57716
|
+
- Do not treat DONE as final completion until Oracle verifies it
|
|
57717
|
+
|
|
57718
|
+
## Exit Conditions
|
|
57719
|
+
|
|
57720
|
+
1. **Verified Completion**: Oracle verifies the result and the system confirms it
|
|
57721
|
+
2. **Cancel**: User runs \`/cancel-ralph\`
|
|
57722
|
+
|
|
57723
|
+
## Your Task
|
|
57724
|
+
|
|
57725
|
+
Parse the arguments below and begin working on the task. The format is:
|
|
57726
|
+
\`"task description" [--completion-promise=TEXT] [--strategy=reset|continue]\`
|
|
57727
|
+
|
|
57728
|
+
Default completion promise is "DONE".`;
|
|
57729
|
+
var CANCEL_RALPH_TEMPLATE = `Cancel the currently active Ralph Loop.
|
|
57730
|
+
|
|
57731
|
+
This will:
|
|
57732
|
+
1. Stop the loop from continuing
|
|
57733
|
+
2. Clear the loop state file
|
|
57734
|
+
3. Allow the session to end normally
|
|
57735
|
+
|
|
57736
|
+
Check if a loop is active and cancel it. Inform the user of the result.`;
|
|
57737
|
+
|
|
57738
|
+
// src/features/builtin-commands/templates/skill-creator.ts
|
|
57739
|
+
var SKILL_CREATOR_TEMPLATE = `# Skill Creator Command
|
|
57740
|
+
|
|
57741
|
+
Load the built-in skill-creator skill for creating, refining, or migrating SKILL.md-based skills.
|
|
57742
|
+
|
|
57743
|
+
## How To Use This Command
|
|
57744
|
+
|
|
57745
|
+
1. Call the skill tool with the built-in skill name:
|
|
57746
|
+
|
|
57747
|
+
\`skill(name="skill-creator")\`
|
|
57748
|
+
|
|
57749
|
+
2. After the skill loads, use its guidance to:
|
|
57750
|
+
- create a new skill
|
|
57751
|
+
- refine an existing SKILL.md
|
|
57752
|
+
- improve naming, description, and structure
|
|
57753
|
+
- choose between local skill files and built-in skills
|
|
57754
|
+
|
|
57755
|
+
## User Context
|
|
57756
|
+
|
|
57757
|
+
Treat any command arguments as the user's goal or context for the skill work.
|
|
57758
|
+
|
|
57759
|
+
## Action
|
|
57760
|
+
|
|
57761
|
+
Call \`skill(name="skill-creator")\` now, then continue using the loaded guidance and the user's request.`;
|
|
57762
|
+
|
|
57572
57763
|
// src/features/builtin-commands/templates/start-work.ts
|
|
57573
57764
|
var START_WORK_TEMPLATE = `You are starting a Sisyphus work session.
|
|
57574
57765
|
|
|
@@ -57662,184 +57853,20 @@ Reading plan and beginning execution...
|
|
|
57662
57853
|
- Read the FULL plan file before delegating any tasks
|
|
57663
57854
|
- Follow atlas delegation protocols (7-section format)`;
|
|
57664
57855
|
|
|
57665
|
-
// src/features/builtin-commands/templates/
|
|
57666
|
-
var
|
|
57667
|
-
|
|
57668
|
-
## Purpose
|
|
57669
|
-
|
|
57670
|
-
Use /handoff when:
|
|
57671
|
-
- The current session context is getting too long and quality is degrading
|
|
57672
|
-
- You want to start fresh while preserving essential context from this session
|
|
57673
|
-
- The context window is approaching capacity
|
|
57674
|
-
|
|
57675
|
-
This creates a detailed context summary that can be used to continue work in a new session.
|
|
57676
|
-
|
|
57677
|
-
---
|
|
57678
|
-
|
|
57679
|
-
# PHASE 0: VALIDATE REQUEST
|
|
57680
|
-
|
|
57681
|
-
Before proceeding, confirm:
|
|
57682
|
-
- [ ] There is meaningful work or context in this session to preserve
|
|
57683
|
-
- [ ] The user wants to create a handoff summary (not just asking about it)
|
|
57684
|
-
|
|
57685
|
-
If the session is nearly empty or has no meaningful context, inform the user there is nothing substantial to hand off.
|
|
57686
|
-
|
|
57687
|
-
---
|
|
57688
|
-
|
|
57689
|
-
# PHASE 1: GATHER PROGRAMMATIC CONTEXT
|
|
57690
|
-
|
|
57691
|
-
Execute these tools to gather concrete data:
|
|
57692
|
-
|
|
57693
|
-
1. session_read({ session_id: "$SESSION_ID" }) \u2014 full session history
|
|
57694
|
-
2. todoread() \u2014 current task progress
|
|
57695
|
-
3. Bash({ command: "git diff --stat HEAD~10..HEAD" }) \u2014 recent file changes
|
|
57696
|
-
4. Bash({ command: "git status --porcelain" }) \u2014 uncommitted changes
|
|
57697
|
-
|
|
57698
|
-
Suggested execution order:
|
|
57699
|
-
|
|
57700
|
-
\`\`\`
|
|
57701
|
-
session_read({ session_id: "$SESSION_ID" })
|
|
57702
|
-
todoread()
|
|
57703
|
-
Bash({ command: "git diff --stat HEAD~10..HEAD" })
|
|
57704
|
-
Bash({ command: "git status --porcelain" })
|
|
57705
|
-
\`\`\`
|
|
57706
|
-
|
|
57707
|
-
Analyze the gathered outputs to understand:
|
|
57708
|
-
- What the user asked for (exact wording)
|
|
57709
|
-
- What work was completed
|
|
57710
|
-
- What tasks remain incomplete (include todo state)
|
|
57711
|
-
- What decisions were made
|
|
57712
|
-
- What files were modified or discussed (include git diff/stat + status)
|
|
57713
|
-
- What patterns, constraints, or preferences were established
|
|
57714
|
-
|
|
57715
|
-
---
|
|
57716
|
-
|
|
57717
|
-
# PHASE 2: EXTRACT CONTEXT
|
|
57718
|
-
|
|
57719
|
-
Write the context summary from first person perspective ("I did...", "I told you...").
|
|
57720
|
-
|
|
57721
|
-
Focus on:
|
|
57722
|
-
- Capabilities and behavior, not file-by-file implementation details
|
|
57723
|
-
- What matters for continuing the work
|
|
57724
|
-
- Avoiding excessive implementation details (variable names, storage keys, constants) unless critical
|
|
57725
|
-
- USER REQUESTS (AS-IS) must be verbatim (do not paraphrase)
|
|
57726
|
-
- EXPLICIT CONSTRAINTS must be verbatim only (do not invent)
|
|
57727
|
-
|
|
57728
|
-
Questions to consider when extracting:
|
|
57729
|
-
- What did I just do or implement?
|
|
57730
|
-
- What instructions did I already give which are still relevant (e.g. follow patterns in the codebase)?
|
|
57731
|
-
- What files did I tell you are important or that I am working on?
|
|
57732
|
-
- Did I provide a plan or spec that should be included?
|
|
57733
|
-
- What did I already tell you that is important (libraries, patterns, constraints, preferences)?
|
|
57734
|
-
- What important technical details did I discover (APIs, methods, patterns)?
|
|
57735
|
-
- What caveats, limitations, or open questions did I find?
|
|
57736
|
-
|
|
57737
|
-
---
|
|
57738
|
-
|
|
57739
|
-
# PHASE 3: FORMAT OUTPUT
|
|
57740
|
-
|
|
57741
|
-
Generate a handoff summary using this exact format:
|
|
57742
|
-
|
|
57743
|
-
\`\`\`
|
|
57744
|
-
HANDOFF CONTEXT
|
|
57745
|
-
===============
|
|
57746
|
-
|
|
57747
|
-
USER REQUESTS (AS-IS)
|
|
57748
|
-
---------------------
|
|
57749
|
-
- [Exact verbatim user requests - NOT paraphrased]
|
|
57750
|
-
|
|
57751
|
-
GOAL
|
|
57752
|
-
----
|
|
57753
|
-
[One sentence describing what should be done next]
|
|
57754
|
-
|
|
57755
|
-
WORK COMPLETED
|
|
57756
|
-
--------------
|
|
57757
|
-
- [First person bullet points of what was done]
|
|
57758
|
-
- [Include specific file paths when relevant]
|
|
57759
|
-
- [Note key implementation decisions]
|
|
57760
|
-
|
|
57761
|
-
CURRENT STATE
|
|
57762
|
-
-------------
|
|
57763
|
-
- [Current state of the codebase or task]
|
|
57764
|
-
- [Build/test status if applicable]
|
|
57765
|
-
- [Any environment or configuration state]
|
|
57766
|
-
|
|
57767
|
-
PENDING TASKS
|
|
57768
|
-
-------------
|
|
57769
|
-
- [Tasks that were planned but not completed]
|
|
57770
|
-
- [Next logical steps to take]
|
|
57771
|
-
- [Any blockers or issues encountered]
|
|
57772
|
-
- [Include current todo state from todoread()]
|
|
57773
|
-
|
|
57774
|
-
KEY FILES
|
|
57775
|
-
---------
|
|
57776
|
-
- [path/to/file1] - [brief role description]
|
|
57777
|
-
- [path/to/file2] - [brief role description]
|
|
57778
|
-
(Maximum 10 files, prioritized by importance)
|
|
57779
|
-
- (Include files from git diff/stat and git status)
|
|
57780
|
-
|
|
57781
|
-
IMPORTANT DECISIONS
|
|
57782
|
-
-------------------
|
|
57783
|
-
- [Technical decisions that were made and why]
|
|
57784
|
-
- [Trade-offs that were considered]
|
|
57785
|
-
- [Patterns or conventions established]
|
|
57786
|
-
|
|
57787
|
-
EXPLICIT CONSTRAINTS
|
|
57788
|
-
--------------------
|
|
57789
|
-
- [Verbatim constraints only - from user or existing AGENTS.md]
|
|
57790
|
-
- If none, write: None
|
|
57791
|
-
|
|
57792
|
-
CONTEXT FOR CONTINUATION
|
|
57793
|
-
------------------------
|
|
57794
|
-
- [What the next session needs to know to continue]
|
|
57795
|
-
- [Warnings or gotchas to be aware of]
|
|
57796
|
-
- [References to documentation if relevant]
|
|
57797
|
-
\`\`\`
|
|
57798
|
-
|
|
57799
|
-
Rules for the summary:
|
|
57800
|
-
- Plain text with bullets
|
|
57801
|
-
- No markdown headers with # (use the format above with dashes)
|
|
57802
|
-
- No bold, italic, or code fences within content
|
|
57803
|
-
- Use workspace-relative paths for files
|
|
57804
|
-
- Keep it focused - only include what matters for continuation
|
|
57805
|
-
- Pick an appropriate length based on complexity
|
|
57806
|
-
- USER REQUESTS (AS-IS) and EXPLICIT CONSTRAINTS must be verbatim only
|
|
57807
|
-
|
|
57808
|
-
---
|
|
57809
|
-
|
|
57810
|
-
# PHASE 4: PROVIDE INSTRUCTIONS
|
|
57811
|
-
|
|
57812
|
-
After generating the summary, instruct the user:
|
|
57813
|
-
|
|
57814
|
-
\`\`\`
|
|
57815
|
-
---
|
|
57816
|
-
|
|
57817
|
-
TO CONTINUE IN A NEW SESSION:
|
|
57818
|
-
|
|
57819
|
-
1. Press 'n' in OpenCode TUI to open a new session, or run 'opencode' in a new terminal
|
|
57820
|
-
2. Paste the HANDOFF CONTEXT above as your first message
|
|
57821
|
-
3. Add your request: "Continue from the handoff context above. [Your next task]"
|
|
57822
|
-
|
|
57823
|
-
The new session will have all context needed to continue seamlessly.
|
|
57824
|
-
\`\`\`
|
|
57825
|
-
|
|
57826
|
-
---
|
|
57827
|
-
|
|
57828
|
-
# IMPORTANT CONSTRAINTS
|
|
57829
|
-
|
|
57830
|
-
- DO NOT attempt to programmatically create new sessions (no API available to agents)
|
|
57831
|
-
- DO provide a self-contained summary that works without access to this session
|
|
57832
|
-
- DO include workspace-relative file paths
|
|
57833
|
-
- DO NOT include sensitive information (API keys, credentials, secrets)
|
|
57834
|
-
- DO NOT exceed 10 files in the KEY FILES section
|
|
57835
|
-
- DO keep the GOAL section to a single sentence or short paragraph
|
|
57856
|
+
// src/features/builtin-commands/templates/stop-continuation.ts
|
|
57857
|
+
var STOP_CONTINUATION_TEMPLATE = `Stop all continuation mechanisms for the current session.
|
|
57836
57858
|
|
|
57837
|
-
|
|
57859
|
+
This command will:
|
|
57860
|
+
1. Stop the todo-continuation-enforcer from automatically continuing incomplete tasks
|
|
57861
|
+
2. Cancel any active Ralph Loop
|
|
57862
|
+
3. Clear the boulder state for the current project
|
|
57838
57863
|
|
|
57839
|
-
|
|
57864
|
+
After running this command:
|
|
57865
|
+
- The session will not auto-continue when idle
|
|
57866
|
+
- You can manually continue work when ready
|
|
57867
|
+
- The stop state is per-session and clears when the session ends
|
|
57840
57868
|
|
|
57841
|
-
|
|
57842
|
-
`;
|
|
57869
|
+
Use this when you need to pause automated continuation and take manual control.`;
|
|
57843
57870
|
|
|
57844
57871
|
// src/features/builtin-commands/commands.ts
|
|
57845
57872
|
var BUILTIN_COMMAND_DEFINITIONS = {
|
|
@@ -57889,6 +57916,17 @@ ${REFACTOR_TEMPLATE}
|
|
|
57889
57916
|
</command-instruction>`,
|
|
57890
57917
|
argumentHint: "<refactoring-target> [--scope=<file|module|project>] [--strategy=<safe|aggressive>]"
|
|
57891
57918
|
},
|
|
57919
|
+
"skill-creator": {
|
|
57920
|
+
description: "(builtin) Load skill-creator guidance for creating and refining skills",
|
|
57921
|
+
template: `<command-instruction>
|
|
57922
|
+
${SKILL_CREATOR_TEMPLATE}
|
|
57923
|
+
</command-instruction>
|
|
57924
|
+
|
|
57925
|
+
<user-request>
|
|
57926
|
+
$ARGUMENTS
|
|
57927
|
+
</user-request>`,
|
|
57928
|
+
argumentHint: "[goal or context]"
|
|
57929
|
+
},
|
|
57892
57930
|
"start-work": {
|
|
57893
57931
|
description: "(builtin) Start Sisyphus work session from Prometheus plan",
|
|
57894
57932
|
agent: "atlas",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-opencode-gpt-slim",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "GPT-optimized lean fork of oh-my-openagent — 33 hooks removed, 5 tools removed, Sisyphus prompt rewritten based on OpenAI Codex prompt.md",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -78,15 +78,15 @@
|
|
|
78
78
|
"typescript": "^5.7.3"
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|
|
81
|
-
"oh-my-opencode-gpt-slim-darwin-arm64": "0.1.
|
|
82
|
-
"oh-my-opencode-gpt-slim-darwin-x64": "0.1.
|
|
83
|
-
"oh-my-opencode-gpt-slim-darwin-x64-baseline": "0.1.
|
|
84
|
-
"oh-my-opencode-gpt-slim-linux-arm64": "0.1.
|
|
85
|
-
"oh-my-opencode-gpt-slim-linux-arm64-musl": "0.1.
|
|
86
|
-
"oh-my-opencode-gpt-slim-linux-x64": "0.1.
|
|
87
|
-
"oh-my-opencode-gpt-slim-linux-x64-baseline": "0.1.
|
|
88
|
-
"oh-my-opencode-gpt-slim-linux-x64-musl": "0.1.
|
|
89
|
-
"oh-my-opencode-gpt-slim-linux-x64-musl-baseline": "0.1.
|
|
81
|
+
"oh-my-opencode-gpt-slim-darwin-arm64": "0.1.2",
|
|
82
|
+
"oh-my-opencode-gpt-slim-darwin-x64": "0.1.2",
|
|
83
|
+
"oh-my-opencode-gpt-slim-darwin-x64-baseline": "0.1.2",
|
|
84
|
+
"oh-my-opencode-gpt-slim-linux-arm64": "0.1.2",
|
|
85
|
+
"oh-my-opencode-gpt-slim-linux-arm64-musl": "0.1.2",
|
|
86
|
+
"oh-my-opencode-gpt-slim-linux-x64": "0.1.2",
|
|
87
|
+
"oh-my-opencode-gpt-slim-linux-x64-baseline": "0.1.2",
|
|
88
|
+
"oh-my-opencode-gpt-slim-linux-x64-musl": "0.1.2",
|
|
89
|
+
"oh-my-opencode-gpt-slim-linux-x64-musl-baseline": "0.1.2"
|
|
90
90
|
},
|
|
91
91
|
"overrides": {
|
|
92
92
|
"@opencode-ai/sdk": "^1.2.17"
|