tickmarkr 1.68.0 → 1.70.0
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/adapters/kimi.d.ts +25 -1
- package/dist/adapters/kimi.js +80 -0
- package/dist/adapters/types.d.ts +6 -0
- package/dist/cli/commands/eval.d.ts +4 -0
- package/dist/cli/commands/eval.js +26 -0
- package/dist/cli/commands/report.js +40 -5
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/eval/canary.d.ts +46 -0
- package/dist/eval/canary.js +113 -0
- package/dist/eval/dispatch.d.ts +31 -0
- package/dist/eval/dispatch.js +207 -0
- package/dist/eval/fixtures.d.ts +22 -0
- package/dist/eval/fixtures.js +85 -0
- package/dist/eval/report.d.ts +35 -0
- package/dist/eval/report.js +82 -0
- package/dist/eval/selfcheck.d.ts +22 -0
- package/dist/eval/selfcheck.js +177 -0
- package/dist/gates/acceptance.d.ts +5 -1
- package/dist/gates/acceptance.js +72 -10
- package/dist/gates/review.d.ts +10 -2
- package/dist/gates/review.js +72 -19
- package/dist/report/bundle.d.ts +45 -0
- package/dist/report/bundle.js +158 -0
- package/dist/report/compare.d.ts +64 -0
- package/dist/report/compare.js +231 -0
- package/dist/run/daemon.js +152 -103
- package/dist/run/environment.d.ts +12 -0
- package/dist/run/environment.js +41 -0
- package/dist/run/interactive-seed.d.ts +15 -0
- package/dist/run/interactive-seed.js +25 -0
- package/fixtures/eval/canary/solution/a.txt +1 -0
- package/fixtures/eval/canary/spec.md +8 -0
- package/fixtures/eval/canary/start/a.txt +1 -0
- package/fixtures/eval/sample/solution/a.txt +1 -0
- package/fixtures/eval/sample/spec.md +8 -0
- package/fixtures/eval/sample/start/a.txt +1 -0
- package/fixtures/gsd-sample/07-live-check/07-01-PLAN.md +42 -0
- package/fixtures/gsd-sample/07-live-check/07-02-PLAN.md +21 -0
- package/fixtures/gsd-sample/07-live-check/07-03-PLAN.md +18 -0
- package/fixtures/gsd-sample/07-live-check/07-03-SUMMARY.md +1 -0
- package/fixtures/missing-mandatory-gate.native.md +10 -0
- package/fixtures/sample-pin.prd.md +18 -0
- package/fixtures/sample.native.md +35 -0
- package/fixtures/sample.prd.md +22 -0
- package/fixtures/speckit-sample/tasks.md +20 -0
- package/package.json +3 -2
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// v1.69 T6: launch-then-seed handoff for adapters whose real TUI cannot be argv-seeded.
|
|
2
|
+
// Both the launch command and the seed line are delivered through the driver's existing `run`
|
|
3
|
+
// primitive (pane-run on herdr). After the seed line is injected we read the pane back and
|
|
4
|
+
// treat a seed that is still sitting in the input box as a hard failure (OBS-105 discipline).
|
|
5
|
+
export async function runInteractiveSeed(opts) {
|
|
6
|
+
const seed = opts.adapter.interactiveSeed;
|
|
7
|
+
await opts.driver.run(opts.slot, seed.launch(opts.assignment.model));
|
|
8
|
+
const ready = await opts.driver.waitOutput(opts.slot, seed.readinessMatch, opts.taskTimeoutMinutes * 60_000);
|
|
9
|
+
if (!ready) {
|
|
10
|
+
const output = await opts.driver.read(opts.slot, 1000);
|
|
11
|
+
return { output, seedFailed: true, seedError: `readiness pattern not seen: ${seed.readinessMatch}` };
|
|
12
|
+
}
|
|
13
|
+
const seedText = seed.seedLine(opts.promptFile);
|
|
14
|
+
await opts.driver.run(opts.slot, seedText);
|
|
15
|
+
let output = "";
|
|
16
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
17
|
+
await new Promise((r) => setTimeout(r, 200));
|
|
18
|
+
output = await opts.driver.read(opts.slot, 1000);
|
|
19
|
+
const bottom = output.trimEnd().split("\n").pop() ?? "";
|
|
20
|
+
if (!bottom.includes(seedText)) {
|
|
21
|
+
return { output, seedFailed: false };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return { output, seedFailed: true, seedError: "seed line never left the input box" };
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
canary-verified
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
canary-start
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
hello from solution
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
hello from start
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: 07-live-check
|
|
3
|
+
plan: "01"
|
|
4
|
+
type: execute
|
|
5
|
+
wave: 1
|
|
6
|
+
depends_on: []
|
|
7
|
+
files_modified:
|
|
8
|
+
- src/**
|
|
9
|
+
autonomous: true
|
|
10
|
+
must_haves:
|
|
11
|
+
truths:
|
|
12
|
+
- "truth A holds in the shipped artifact"
|
|
13
|
+
artifacts:
|
|
14
|
+
- path: "src/out.js"
|
|
15
|
+
provides: "the thing"
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<objective>
|
|
19
|
+
Implement the first objective sentence. Additional prose that is not the title.
|
|
20
|
+
</objective>
|
|
21
|
+
|
|
22
|
+
<context>
|
|
23
|
+
@.planning/PROJECT.md
|
|
24
|
+
@$HOME/.claude/get-shit-done/workflows/execute-plan.md
|
|
25
|
+
@~/somewhere/outside.md
|
|
26
|
+
</context>
|
|
27
|
+
|
|
28
|
+
<tasks>
|
|
29
|
+
|
|
30
|
+
<task type="auto">
|
|
31
|
+
<name>Task 1: Build the widget</name>
|
|
32
|
+
<action>do the thing</action>
|
|
33
|
+
<verify>look at it</verify>
|
|
34
|
+
<done>widget builds green</done>
|
|
35
|
+
</task>
|
|
36
|
+
|
|
37
|
+
<task type="auto">
|
|
38
|
+
<name>Task 2: Wire the widget</name>
|
|
39
|
+
<done>widget is wired and demoed</done>
|
|
40
|
+
</task>
|
|
41
|
+
|
|
42
|
+
</tasks>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: 07-live-check
|
|
3
|
+
plan: "02"
|
|
4
|
+
type: execute
|
|
5
|
+
wave: 2
|
|
6
|
+
depends_on: ["07-01"]
|
|
7
|
+
files_modified:
|
|
8
|
+
- docs/**
|
|
9
|
+
autonomous: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<objective>
|
|
13
|
+
Document the widget. Trailing sentence.
|
|
14
|
+
</objective>
|
|
15
|
+
|
|
16
|
+
<tasks>
|
|
17
|
+
<task type="checkpoint:human-action" gate="blocking">
|
|
18
|
+
<name>Task 1: Operator reviews the docs</name>
|
|
19
|
+
<done>operator approved the docs page</done>
|
|
20
|
+
</task>
|
|
21
|
+
</tasks>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase: 07-live-check
|
|
3
|
+
plan: "03"
|
|
4
|
+
type: execute
|
|
5
|
+
depends_on: ["07-02"]
|
|
6
|
+
autonomous: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<objective>
|
|
10
|
+
Already-finished work. Done earlier.
|
|
11
|
+
</objective>
|
|
12
|
+
|
|
13
|
+
<tasks>
|
|
14
|
+
<task type="auto">
|
|
15
|
+
<name>Task 1: old work</name>
|
|
16
|
+
<done>previously completed</done>
|
|
17
|
+
</task>
|
|
18
|
+
</tasks>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# done earlier
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Sample PRD: pinned delivery
|
|
2
|
+
|
|
3
|
+
## T1: Implement pinned compiler work
|
|
4
|
+
- shape: implement
|
|
5
|
+
- complexity: 7
|
|
6
|
+
- files: src/compiler.ts, src/types.ts
|
|
7
|
+
- pin: claude-code sonnet
|
|
8
|
+
- acceptance:
|
|
9
|
+
- compiler returns a graph
|
|
10
|
+
|
|
11
|
+
## T2: Verify pinned compiler work
|
|
12
|
+
- shape: tests
|
|
13
|
+
- deps: T1
|
|
14
|
+
- files: tests/compiler.test.ts
|
|
15
|
+
- humanGate: true
|
|
16
|
+
- acceptance:
|
|
17
|
+
- tests reject malformed input
|
|
18
|
+
- reviewer approves the output
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!-- drovr:spec -->
|
|
2
|
+
# Native spec: compiler delivery
|
|
3
|
+
|
|
4
|
+
## T1: Build the native compiler
|
|
5
|
+
- goal: Compile the complete native task surface
|
|
6
|
+
- shape: implement
|
|
7
|
+
- deps: none
|
|
8
|
+
- files: src/compile/native.ts, src/compile/index.ts
|
|
9
|
+
- context: docs/native.md, src/graph/schema.ts
|
|
10
|
+
- complexity: 8
|
|
11
|
+
- humanGate: true
|
|
12
|
+
- pin: claude-code opus
|
|
13
|
+
- floor: frontier
|
|
14
|
+
- gates:
|
|
15
|
+
- build
|
|
16
|
+
- test
|
|
17
|
+
- lint
|
|
18
|
+
- evidence
|
|
19
|
+
- scope
|
|
20
|
+
- acceptance
|
|
21
|
+
- acceptance:
|
|
22
|
+
- every native field reaches the graph
|
|
23
|
+
- malformed fields fail loudly
|
|
24
|
+
|
|
25
|
+
## T2: Test native detection
|
|
26
|
+
- goal: Keep native and generic markdown routing distinct
|
|
27
|
+
- shape: tests
|
|
28
|
+
- deps: T1
|
|
29
|
+
- files: tests/compile/native.test.ts
|
|
30
|
+
- context: fixtures/sample.native.md
|
|
31
|
+
- complexity: 3
|
|
32
|
+
- humanGate: false
|
|
33
|
+
- acceptance:
|
|
34
|
+
- marked markdown selects native
|
|
35
|
+
- marker-less markdown stays PRD
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Sample PRD: tiny greeter
|
|
2
|
+
|
|
3
|
+
## T1: Implement greet(name) in src/greet.js
|
|
4
|
+
- shape: implement
|
|
5
|
+
- complexity: 3
|
|
6
|
+
- files: src/**
|
|
7
|
+
- acceptance:
|
|
8
|
+
- greet("drover") returns a string containing "drover"
|
|
9
|
+
- module exports a single function
|
|
10
|
+
|
|
11
|
+
## T2: Cover greet with tests
|
|
12
|
+
- deps: T1
|
|
13
|
+
- files: test/**
|
|
14
|
+
- acceptance:
|
|
15
|
+
- tests fail when greet drops the name
|
|
16
|
+
- npm test exits 0
|
|
17
|
+
|
|
18
|
+
## T3: Document usage in README
|
|
19
|
+
- deps: T1
|
|
20
|
+
- humanGate: true
|
|
21
|
+
- acceptance:
|
|
22
|
+
- README shows an executable example
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Tasks: Sample Feature
|
|
2
|
+
|
|
3
|
+
## Phase 1: Setup
|
|
4
|
+
- [ ] T001 Create project structure in src/
|
|
5
|
+
- acceptance: src/ and tests/ directories exist with entry points
|
|
6
|
+
- files: src/**, tests/**
|
|
7
|
+
- shape: chore
|
|
8
|
+
|
|
9
|
+
## Phase 2: Core
|
|
10
|
+
- [ ] T002 [P] Implement token refresh in src/auth/refresh.ts
|
|
11
|
+
- acceptance: expired token triggers exactly one refresh attempt
|
|
12
|
+
- acceptance: refresh failure surfaces a typed error
|
|
13
|
+
- files: src/auth/**
|
|
14
|
+
- complexity: 7
|
|
15
|
+
- [ ] T003 [P] Implement session store in src/auth/store.ts
|
|
16
|
+
- acceptance: sessions persist across restarts
|
|
17
|
+
- files: src/auth/**
|
|
18
|
+
- [ ] T004 Write integration tests for auth flow
|
|
19
|
+
- acceptance: happy path and refresh-failure path covered
|
|
20
|
+
- files: tests/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tickmarkr",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.70.0",
|
|
4
4
|
"description": "Spec in, verified work out.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"dist",
|
|
28
28
|
"schema",
|
|
29
|
-
"skills"
|
|
29
|
+
"skills",
|
|
30
|
+
"fixtures"
|
|
30
31
|
],
|
|
31
32
|
"scripts": {
|
|
32
33
|
"build": "tsc -p tsconfig.json",
|