Repository navigation
Task Outcomes EN
A router's recommendation of a smaller model does not establish savings or task
success. Actual usage and whether the resulting files meet the requirements need
separate evidence. This guide explains riido-taskoutcome, which reads an
existing execution trace, and riido-taskverify, which checks candidate files
independently. Neither tool launches a model. Codex integration remains optional.
The public registry remains eight candidates, three code families and one repository. Cumulative actually attempted scope is seven distinct requests, five code families, three repositories and 20 owned records. Experiment 55 first executed the two existing external logical requests under clarified v2 conditions. Both requested profiles' ordinal candidates passed; only the Sol6-requested UUID candidate passed. All four records bind termination, whole usage, budget receipts and auth cleanup, without new training or final eligibility. Versioning adds no logical requests to the compiled registry. Experiment 53 repeated one keyword-guard request four times. Experiment 54 ran one new parser request twice per Sol6/Luna low profile. All four attempts in 54 passed 75 independent terminal tests, exited zero and had complete whole core usage. The repetitions and tests represent observations on one distinct request. The first accepted completed candidate's parser bounds were integrated into runtime and checked against the pinned independent contract.
51's exact-comment rejection and support error, and 52's six accepted candidates, five complete executions and one timeout/unknown-usage result remain preserved historical records. Record count, candidate acceptance and completed execution are distinct. Provider-attested model identity, money and subscription quota remain unknown. These development cases are excluded from current training and final.
The parser taskoutcome-event-key-bounds now has four actual model attempts in 54.
The public Go survey retains its historical snapshot
at 53: 120 candidates, eight repositories and zero execution-eligible tasks.
At 54, independent contracts for two of those external
requests were prepared locally, with zero external model attempts, training labels
or final-eligible requests at that time. 55's four external attempts are now included
in the cumulative observations above; training and final eligibility remain zero.
The seven compiled verifier tasks across three
repositories are a different scope from the eight-candidate local registry.
Authored inputs and correct/wrong controls do not replace model outcomes or
2,400 final requests per claimed domain.
Build the Go binaries from the repository root. Python is not required at runtime.
mkdir -p .cache/bin
go build -trimpath -o .cache/bin/riido-taskoutcome ./cmd/riido-taskoutcome
go build -trimpath -o .cache/bin/riido-taskverify ./cmd/riido-taskverifyStart with the public authored fixtures to inspect the output format.
.cache/bin/riido-taskoutcome --input examples/task-outcomes/complete-authored.jsonl
.cache/bin/riido-taskoutcome --input examples/task-outcomes/partial-authored.jsonl| Authored input | Observed input | Observed cached input | Observed output | Whole-trace usage |
|---|---|---|---|---|
complete-authored.jsonl |
250 | 110 | 50 | Input, cached input, and output totals are known |
partial-authored.jsonl |
100 | Unknown | 20 | Unknown after the second turn fails |
The first fixture contains two completed turns. Reasoning output of 5 is present for only one turn, so its observed sum is 5 and its whole-trace reasoning total is unknown. Missing optional reasoning does not erase known input, cached input, or output totals.
The 110 cached input tokens are already included in the 250 input tokens. Reasoning output is also included in output. Neither is added again, and input minus cached input is not presented as billed tokens. The tool does not convert tokens into fees, subscription usage, or remaining allowance.
Keep real traces in private local storage rather than a public directory. The following paths are usage examples.
.cache/bin/riido-taskoutcome --input .cache/private-task-trace.jsonl
.cache/bin/riido-taskoutcome --input - < .cache/private-task-trace.jsonlYou may add short public identifiers for the task and the requested model.
.cache/bin/riido-taskoutcome \
--input examples/task-outcomes/complete-authored.jsonl \
--task-label authored-example \
--requested-model example-model \
--requested-reasoning lowThese identifiers are caller-provided requests. --requested-model is not
evidence of the model actually used; observed_model remains unknown. Do not
put prompts, personal information, paths, or tokens in these identifiers. A
summary of a real private task still needs a separate review before publication.
-
turn.completedrecords that a turn ended. It does not establish correct code or completion of the task. -
usage.*.observed_totalis the sum actually read from the trace.totalcontains a number only when that field is known for the entire trace. -
nullorunknownmeans unknown, not an observed 0. Missing cached input alone does not discard observed input or output. -
usage_completeis true only when input, cached input, and output are known for every turn and the lifecycle ends cleanly. Failed or open turns, startup errors, and unknown control events preserve observed values but prevent complete totals. This applies to the supplied trace; it does not prove that other attempts or trace files were not omitted. - The actual model, process exit, execution time, producer provenance, and
task_acceptanceremainunknownin this summarizer. -
startup_error_itemscountsitem.completederror diagnostics afterthread.startedand before its firstturn.started. This narrow compatibility handling discards raw text and IDs. A startup error leaves whole usage unknown even if a later turn completes. This field does not classify the cause of a profile availability failure.
The input SHA-256 binds the exact bytes, including whitespace and newlines. It does not prove who produced the trace, whether a model ran, or whether the task succeeded. This summarizer does not launch models or establish producer provenance. That binding is provided by the separate opt-in executor.
The startup compatibility fix does not alter experiment 51's second original
attempt record. Its summary_status: parse_failed remains the actual result of
the frozen parser at that time. Any reanalysis with a new parser needs a
separately versioned record referencing the original; it does not create missing
usage or task success.
The summarizer does not retain messages, reasoning text, tool commands, file bodies, local paths, or thread/item IDs in its output. Default limits are 64 MiB per trace, 1 MiB per line, 100,000 events, and 4,096 turns. Malformed JSON, duplicate relevant keys, numeric overflow, and exceeded limits are rejected with fixed error codes that do not echo the source text.
The five contracts below have actual model attempts. riido-taskverify checks
their declared file scopes. The versioned parser contract was used for four
attempts in 54; prior specifications and records remain preserved.
This table covers the five local contracts. The two separate external logical requests
have four attempts under the actual v2 comparison55.
Read the specification first. This command prints its JSON specification without
running checks or launching a model.
.cache/bin/riido-taskverify --task catalog-min-context --spec
.cache/bin/riido-taskverify --task repo-keyword-language-guard --spec| Task ID | Requirement checked | File scope and method |
|---|---|---|
comment-budget-period |
Replace the budget-period comment with the exact specified sentence | Three pinned files: go.mod, catalog source, and tests. Exact change, gofmt, and pinned test execution |
comment-preview-authority |
Replace the comment to state that a repository suggestion never authorizes execution | One file, pkg/reporouter/router.go. Exact change and static gofmt check |
catalog-min-context |
Add optional MinContext, reject negative values, apply minimum-context eligibility, and preserve existing behavior |
Nine pinned files covering catalog, planner, switchpolicy, and examples. Independent boundary checks and pinned catalog/planner test execution |
repo-keyword-language-guard |
Check every selected candidate keyword for non-Latin letters before Judge; preserve the lexical result and abstention reason without calling Judge when blocked | Three files in a separate base: pinned go.mod, reporouter source, and tests. Independent contracts and pinned tests; all four repetitions of this request accepted in 53 |
taskoutcome-event-key-bounds |
Bound event-envelope keys to 64 entries and 128 decoded UTF-8 bytes, reject duplicates, preserve lifecycle/usage/opaque items/redacted errors | Three files in a separate base: go.mod, taskoutcome source and tests, with LICENSE/NOTICE. Independent contracts and pinned tests total 75; all four repetitions accepted in 54 |
This file scope is the task closure. Files outside it are unassessed;
accepted does not establish correctness or safety of the entire repository or
every requirement. An unchanged base is not accepted as having performed the
requested task. Candidate-authored test assertions are not acceptance evidence.
The original three tasks' public base files are in internal/taskverify/testdata/base. Their pinned
revision is 6b2c1bdfd38bea5a9a2c11433ffcfcb94c4143a3; the verifier checks the
SHA-256 of every required file. The new keyword task uses a separate base at
public revision 146b02b9c37e6d90a11386050ccfdffc036c113e, stored in
internal/taskverify/testdata/repo-keyword-language-guard-v1. Its versioned
definition binds source, specification, independent contracts, and separately
pinned LICENSE/NOTICE. The original three specifications and hashes are not
changed to match the new task. Prepare a candidate directory containing the task
changes against its matching base. For example, this command checks an already
prepared candidate:
.cache/bin/riido-taskverify \
--task catalog-min-context \
--base-dir internal/taskverify/testdata/base \
--candidate-dir .cache/task-candidates/catalog-min-context \
--go-root /absolute/trusted/go-toolchainThe command does not create that candidate or perform the task. Use the matching
task ID and candidate directory for either comment task. --help prints concise
usage instructions.
For the new keyword task, use --task repo-keyword-language-guard with its separate
--base-dir above and a candidate prepared against that base. --spec shows the
current task's base revision and pins without launching a model.
Set --go-root to the absolute path of a trusted Go 1.27.1 installation containing
bin/go. A packaged -trimpath binary without a default Go installation needs
this option for behavioral checks. Unavailable toolchain resolution or isolated
Go execution remains verifier_unknown, not an incorrect candidate label. This
is separate from the comment task's static checks without candidate execution.
Of the five actually attempted tasks above, the four requiring behavioral tests run only when macOS sandbox-exec
isolation is available. The verifier copies the declared public source and
pinned tests into a temporary directory, configured to avoid network access and
the host's authentication environment. If isolation is unavailable or execution
is cancelled or the overall verification deadline or output limit prevents
completion, the result is verifier_unknown. Actual requirement failures in
independent tests reject the candidate.
Behavioral verification of these four tasks is currently unknown on other OSes.
comment-preview-authority uses static checks without executing candidate code,
so it is separate from that restriction. This is not a general security verifier
that approves arbitrary repositories or arbitrary code execution.
The verification JSON binds the task specification, base, and candidate-file
hashes to check results. independent_tests counts passed Go test/subtest events,
not distinct task-request samples. Read status and the individual check codes rather than
treating every accepted: false as an incorrect implementation.
verifier_unknown may indicate an unavailable verification environment.
Candidate code outside the supported structure is also reported as unknown with
unsupported_candidate_shape. For example, an implementation outside the
allowed base import set may be beyond this narrow verifier's scope; that alone
does not establish that the implementation fails its requirements.
For the new keyword task, changed imports, init functions, and compiler
directives also exceed the supported shape. Acceptance requires the named
independent contract tests to actually pass in their exact package, rather than
candidate-authored assertions. Source acceptance and staged LICENSE/NOTICE hashes
are separate; this does not assess candidate files outside the declared closure.
| Command | Exit code | Meaning |
|---|---|---|
riido-taskoutcome |
0 | Summary or help output succeeded; this is not task success |
riido-taskoutcome |
1 | Input, metadata validation, parsing, limit, or output error |
riido-taskoutcome |
2 | Invalid argument syntax, such as an unknown option |
riido-taskverify verification |
0 | Requirements accepted within the declared task closure |
riido-taskverify verification |
1 | Candidate rejected |
riido-taskverify verification |
2 | Invalid invocation, base files, output, or related call error |
riido-taskverify verification |
3 | Isolation or behavioral verification unknown |
riido-taskverify --spec or --help
|
0 | Specification or help output succeeded; no candidate result |
Agents should read both JSON fields and exit codes. Successful parsing does not
complete a task, and --spec exit code 0 does not approve a candidate.
Experiment 50 stopped before a main coding-model process because of executor packaging. Experiment 51 connected two owned CLI attempts on one comment task. Candidate rejection in the first and profile support failure plus startup-parser incompatibility in the second left the remaining four entries unexecuted. First-attempt usage is complete; second-attempt usage is unknown. No comparable two-profile capability results or savings were established.
Experiment 52 records all six
attempts under a separate plan requesting available gpt-6-sol and gpt-6-luna
profiles, both with low. Both candidates passed independent closure checks on
all three requests, but only five attempts exited zero with complete core usage.
The Sol attempt on catalog-min-context reached the 120-second deadline; its
accepted candidate is not relabeled as an implementation failure, and whole usage
stays unknown. Only the two comment requests have complete usage for both
profiles. This does not assume that the larger profile is always better or
establish a general savings rate.
The historical 51/52 subtotal is eight records over three requests; through 53
there were 12 records, four requests and two actually attempted families.
At 53, there were ten accepted candidates and ten complete-core-usage records;
the usage records included 51's rejected first attempt.
Through 54, the historical total is 16 records, five requests, three actually
attempted families and one repository. Accepted candidates total 14: six in 52
plus four in each of 53 and 54. The 14 complete-core-usage records include 51's
rejected first attempt. Thirteen records combine acceptance, zero exit and complete
usage. Preserve the one support failure and the one accepted candidate with
timeout/unknown whole usage. Provider-attested served identity and actual cost
remain unknown; all records are development evidence.
53's sums are 339,805 input including 280,576 cached input, and 4,890 output including 76 reasoning. Luna had less total input, but uncached input was Luna 31,425 versus Sol 27,804. Do not double-count subsets or infer actual savings.
54 reports input 485,609 including cached 423,552, and output 5,282 including reasoning 157. Uncached input totals were Luna 26,735 versus Sol6 35,322. Luna used less input/output and observed main time on this one request; this does not establish subscription or monetary savings. Read the pre-outcome plan and numeric records together.
Actual routing evaluation still needs independently accepted outcomes from executable profiles on the same specification and base, usage across all attempts/retries, and requested/observed evidence. Compare completion rate with whole-task usage to evaluate upward and downward routing. These development records do not replace the golden-set design's target of at least 2,400 final requests per evaluated domain. See the acquisition plan for source collection, grouped splits, and comparison-execution budgets.
The authored JSONL fixtures and public code verification examples explain tool behavior. They do not constitute actual model outcomes. The original tool scope and validation plan are in historical plan 49.
Actual tool execution on authored fixtures records two summaries, acceptance of the exact comment change, and rejection of an unchanged base. Tool exit codes are separate from model process exits; there are zero actual model outcomes in that historical authored record, separate from experiments 51/52/53/54's later owned attempts.
Source acquisition and executable contracts are separated in the 120-candidate public Go survey.
riidolaya is experimental. No demonstrated Codex cost savings; repository selection is preview-only.
riidolaya는 실험 단계입니다. Codex 절감은 미입증이며 저장소 선택은 preview입니다.
English README · 한국어 README · Versioned Wiki sources / Wiki 원본
이전 연구 안내 펼치기 / Earlier research
- 실제 이어 학습 V3 · 한국어 · Actual V3 training · English
- 진행·완료 보고·질문100건 결과 KO · 100-case results EN
- 라벨·이모지·상태 힌트 KO · Content/state hints EN
- 개발 진행·완료 보고·질문 pilot KO · Development pilot EN
- 작은 검증 기록 KO · Compact evidence EN
- 현재 개발 자료 35개·다음 학습 조건 · 35-row data and next training gates
- 개발용 학습 자료 2개 · Two qualified training requests
- 첫 두 과제 실제 관측 · First two actual observations
- 전체 사용법 KO · Full usage EN
- 작은 동작 힌트 KO · Small hints EN
- 설명 보강 비교76 · Caption diagnostic76
- Go 압축 가중치78 · Packed Go weights78
- 공개 함수 동작 검증 · Public function verification
- 다음 학습 자료 준비 · Training data preparation
- 동작에서 학습 정답·실제 학습79 · Grounded labels and actual fit79
- 소스 동작 관찰 · Source observations
- 저장 크기와 RAM · Storage and RAM
- 라이선스 · Licensing
- 시점별 기록 원문 / Chronological history
- 전체 연구 링크 / Full research index
- 문서 목록 / Documentation