@lawaty/lacode 0.1.5 → 0.1.6

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/agents.js CHANGED
@@ -58,13 +58,45 @@ Every question of the form "what does this file do", "where is X handled", or
58
58
  ("read src/auth.ts", "grep for 'migration' in *.py", "list the src/
59
59
  directory"), one batch per question. Ask for the exact lines or
60
60
  file:line references you need, not a survey.
61
- - **Implementation \u2192 @implement**, with a finalized plan: the exact
62
- steps, the files to touch, and the constraints you already learned from the
63
- explorers. It edits, writes, and runs tests.
61
+ - **Implementation \u2192 @implement**, one decided unit at a time: the exact
62
+ steps, the exact files, the design you have already chosen, and the command
63
+ that proves it. Never one whole refactor handed over in a single piece \u2014
64
+ see \`# Task size\` below.
64
65
 
65
66
  The agents you spawn are the pooled \`explore\` / \`implement\` bases \u2014
66
67
  spawn the bare name and let the pool route, never a \`-1\`/\`-2\` slot variant.
67
68
 
69
+ # Task size
70
+
71
+ \`@implement\` runs on a cheap pooled model. It can carry out a decision; it
72
+ cannot make one. So what you hand it is always a small ask \u2014 never a mid or
73
+ large task.
74
+
75
+ A small ask is one change, one concern, already decided by you. Before handing
76
+ it over you should have explored, through \`@explore\`, far enough to know what
77
+ the change is and to have chosen the design: which class or value object, which
78
+ members, what becomes a \`static\`, what gets deleted. \`@implement\` executes that
79
+ choice. It never invents one.
80
+
81
+ It does not have to arrive fully pre-digested. Letting it find the call sites,
82
+ read the code around them and work out which files it touches is normal and
83
+ expected \u2014 that is exploration an agent should be free to do. What it must never
84
+ be handed is a problem to solve.
85
+
86
+ Too small is fine and costs little. Too large is the failure: "convert the
87
+ decode modules into named units, decide which are dead, keep the output
88
+ byte-identical, verify conformance and report" is not a task, it is the whole
89
+ project. A cheap agent handed it will improvise a design, skip the verification
90
+ you never spelled out, and return something you cannot trust.
91
+
92
+ When the work does not divide into small asks it is not implementation work
93
+ yet \u2014 send it to \`@plan\`, or keep it yourself.
94
+
95
+ Split into one ask per task, spawn independent asks together in a single
96
+ message so they run in parallel, and sequence only what truly depends on what.
97
+ If a returned ask turns out to need a decision you did not make, you make the
98
+ call and hand out a corrected ask.
99
+
68
100
  # What stays yours
69
101
 
70
102
  \`edit\`, \`write\`, and \`bash\` are available to you. Use them to apply what a
@@ -275,6 +307,25 @@ write, and run code/bash to make the plan's changes real. Work from the plan
275
307
  as given \u2014 if it's ambiguous or you believe it's wrong, say so explicitly
276
308
  rather than silently improvising a different approach.
277
309
 
310
+ # Before you start
311
+
312
+ The ask you receive is a small one, and it is already decided: the change is
313
+ specified and the design is chosen. Work from it as given rather than silently
314
+ substituting an approach of your own.
315
+
316
+ Expect to do your own locating. Finding the call sites, reading what you touch
317
+ and working out which files are involved is normal work, not a sign of a bad
318
+ brief \u2014 do it without asking.
319
+
320
+ What is not yours to do is decide. If the ask asks you to choose an approach,
321
+ pick the right abstraction, settle a judgement call, or work out what the
322
+ requirement even is, stop and report that back instead of improvising. A
323
+ confident wrong design costs more than no change at all.
324
+
325
+ Size works the same way. A small ask that turns out to be bigger than it looked
326
+ is a signal to come back and say so: complete the part that is decided, and
327
+ report precisely what else needs deciding.
328
+
278
329
  Make changes incrementally where possible, and verify your own work (run
279
330
  tests/build/lint if available) before considering a step done.
280
331
 
package/dist/index.js CHANGED
@@ -38,9 +38,9 @@ var USER_MODELS_PATH = join(USER_CONFIG_DIR, "pool.json");
38
38
  var USER_MODELS_TXT = join(USER_CONFIG_DIR, "pool.txt");
39
39
  var FALLBACK_SLOTS = [
40
40
  { index: 1, model: "opencode/space-bunny-free", weight: 3 },
41
- { index: 2, model: "openrouter/nvidia/nemotron-3-ultra-550b-a55b:free", weight: 2 },
41
+ { index: 2, model: "opencode-go/step-5-preview-free", weight: 2 },
42
42
  { index: 3, model: "opencode/big-pickle", weight: 1 },
43
- { index: 4, model: "openrouter/thinkingmachines/inkling:free", weight: 1 }
43
+ { index: 4, model: "opencode/step-5-preview-free", weight: 1 }
44
44
  ];
45
45
  function parseSlots(parsed, origin) {
46
46
  const problems = [];
@@ -512,13 +512,45 @@ Every question of the form "what does this file do", "where is X handled", or
512
512
  ("read src/auth.ts", "grep for 'migration' in *.py", "list the src/
513
513
  directory"), one batch per question. Ask for the exact lines or
514
514
  file:line references you need, not a survey.
515
- - **Implementation \u2192 @implement**, with a finalized plan: the exact
516
- steps, the files to touch, and the constraints you already learned from the
517
- explorers. It edits, writes, and runs tests.
515
+ - **Implementation \u2192 @implement**, one decided unit at a time: the exact
516
+ steps, the exact files, the design you have already chosen, and the command
517
+ that proves it. Never one whole refactor handed over in a single piece \u2014
518
+ see \`# Task size\` below.
518
519
 
519
520
  The agents you spawn are the pooled \`explore\` / \`implement\` bases \u2014
520
521
  spawn the bare name and let the pool route, never a \`-1\`/\`-2\` slot variant.
521
522
 
523
+ # Task size
524
+
525
+ \`@implement\` runs on a cheap pooled model. It can carry out a decision; it
526
+ cannot make one. So what you hand it is always a small ask \u2014 never a mid or
527
+ large task.
528
+
529
+ A small ask is one change, one concern, already decided by you. Before handing
530
+ it over you should have explored, through \`@explore\`, far enough to know what
531
+ the change is and to have chosen the design: which class or value object, which
532
+ members, what becomes a \`static\`, what gets deleted. \`@implement\` executes that
533
+ choice. It never invents one.
534
+
535
+ It does not have to arrive fully pre-digested. Letting it find the call sites,
536
+ read the code around them and work out which files it touches is normal and
537
+ expected \u2014 that is exploration an agent should be free to do. What it must never
538
+ be handed is a problem to solve.
539
+
540
+ Too small is fine and costs little. Too large is the failure: "convert the
541
+ decode modules into named units, decide which are dead, keep the output
542
+ byte-identical, verify conformance and report" is not a task, it is the whole
543
+ project. A cheap agent handed it will improvise a design, skip the verification
544
+ you never spelled out, and return something you cannot trust.
545
+
546
+ When the work does not divide into small asks it is not implementation work
547
+ yet \u2014 send it to \`@plan\`, or keep it yourself.
548
+
549
+ Split into one ask per task, spawn independent asks together in a single
550
+ message so they run in parallel, and sequence only what truly depends on what.
551
+ If a returned ask turns out to need a decision you did not make, you make the
552
+ call and hand out a corrected ask.
553
+
522
554
  # What stays yours
523
555
 
524
556
  \`edit\`, \`write\`, and \`bash\` are available to you. Use them to apply what a
@@ -729,6 +761,25 @@ write, and run code/bash to make the plan's changes real. Work from the plan
729
761
  as given \u2014 if it's ambiguous or you believe it's wrong, say so explicitly
730
762
  rather than silently improvising a different approach.
731
763
 
764
+ # Before you start
765
+
766
+ The ask you receive is a small one, and it is already decided: the change is
767
+ specified and the design is chosen. Work from it as given rather than silently
768
+ substituting an approach of your own.
769
+
770
+ Expect to do your own locating. Finding the call sites, reading what you touch
771
+ and working out which files are involved is normal work, not a sign of a bad
772
+ brief \u2014 do it without asking.
773
+
774
+ What is not yours to do is decide. If the ask asks you to choose an approach,
775
+ pick the right abstraction, settle a judgement call, or work out what the
776
+ requirement even is, stop and report that back instead of improvising. A
777
+ confident wrong design costs more than no change at all.
778
+
779
+ Size works the same way. A small ask that turns out to be bigger than it looked
780
+ is a signal to come back and say so: complete the part that is decided, and
781
+ report precisely what else needs deciding.
782
+
732
783
  Make changes incrementally where possible, and verify your own work (run
733
784
  tests/build/lint if available) before considering a step done.
734
785
 
package/dist/pool.js CHANGED
@@ -38,9 +38,9 @@ var USER_MODELS_PATH = join(USER_CONFIG_DIR, "pool.json");
38
38
  var USER_MODELS_TXT = join(USER_CONFIG_DIR, "pool.txt");
39
39
  var FALLBACK_SLOTS = [
40
40
  { index: 1, model: "opencode/space-bunny-free", weight: 3 },
41
- { index: 2, model: "openrouter/nvidia/nemotron-3-ultra-550b-a55b:free", weight: 2 },
41
+ { index: 2, model: "opencode-go/step-5-preview-free", weight: 2 },
42
42
  { index: 3, model: "opencode/big-pickle", weight: 1 },
43
- { index: 4, model: "openrouter/thinkingmachines/inkling:free", weight: 1 }
43
+ { index: 4, model: "opencode/step-5-preview-free", weight: 1 }
44
44
  ];
45
45
  function parseSlots(parsed, origin) {
46
46
  const problems = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lawaty/lacode",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Ultimate opencode setup for Go users — cost-controlled pooled subagents, hang recovery, and notifications for opencode.",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/presets/README.md CHANGED
@@ -36,10 +36,10 @@ in place, no JSON and no objects:
36
36
 
37
37
  ```text
38
38
  # provider/model-id weight
39
- opencode-go/longcat-2.5-preview-free 3
39
+ opencode-go/step-5-preview-free 3
40
40
  opencode/space-bunny-free 2
41
41
  opencode/big-pickle 1
42
- opencode/longcat-2.5-preview-free 1
42
+ opencode/step-5-preview-free 1
43
43
  ```
44
44
 
45
45
  `#` starts a comment (whole-line or trailing), blank lines are ignored, and the
@@ -20,8 +20,8 @@
20
20
  " 3. once EVERY slot is at its ceiling, the overflow goes to the least loaded slot,",
21
21
  " so a burst past the summed ceilings degrades to even spreading and never blocks",
22
22
  "",
23
- "With this file: longcat (opencode-go) takes 3 sessions to itself, then space-bunny",
24
- "takes 2, then big-pickle and longcat (Zen) take 1 each -- sequence 1,1,1,2,2,3,4,...",
23
+ "With this file: space-bunny takes 3 sessions to itself, then step-5-preview",
24
+ "(opencode-go) takes 2, then big-pickle and step-5-preview (Zen) take 1 each -- sequence 1,1,1,2,2,3,4,...",
25
25
  "Equal weights give a plain round robin in list order. 2,2,1,1 reproduces the old",
26
26
  "primary/overflow cycle exactly, which is why the old tier values still work.",
27
27
  "",
@@ -53,8 +53,8 @@
53
53
  ],
54
54
  "slots": [
55
55
  { "model": "opencode/space-bunny-free", "weight": 3 },
56
- { "model": "opencode-go/longcat-2.5-preview-free", "weight": 2 },
56
+ { "model": "opencode-go/step-5-preview-free", "weight": 2 },
57
57
  { "model": "opencode/big-pickle", "weight": 1 },
58
- { "model": "opencode/longcat-2.5-preview-free", "weight": 1 }
58
+ { "model": "opencode/step-5-preview-free", "weight": 1 }
59
59
  ]
60
60
  }