Skip to content

docs: sync AutoModel recipe 2.0 miner guide - #9

Open
echobt wants to merge 1 commit into
mainfrom
docs/automodel-recipe-2.0
Open

docs: sync AutoModel recipe 2.0 miner guide#9
echobt wants to merge 1 commit into
mainfrom
docs/automodel-recipe-2.0

Conversation

@echobt

@echobt echobt commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Sync miner-facing docs with BASE control-plane AutoModel recipe 2.0.0: fork pin → edit → git diff → submit automodel.base + automodel.patch (+ optional prism.toml), live pin id automodel@v0.5.0.
  • Document BYOK X-Lium-Api-Key, patch apply / unsupported_layout / recipe_version troubleshooting, and retire the live architecture.py/training.py path (examples/baseline marked historical).
  • Preserve public-repo hero README + assets/ branding; docs-only — no control-plane source.

Paired with control-plane work: BaseIntelligence/base#120

Test plan

  • Skim README + docs/getting-started.md — workflow matches live /v1/recipe (automodel@v0.5.0)
  • Confirm submit curl examples include X-Lium-Api-Key
  • Confirm troubleshooting covers unsupported_layout, recipe_version, patch apply failures
  • Confirm examples/baseline/ clearly warns it is rejected on live 2.0
  • No secrets or control-plane/gateway/validator code in the diff

Summary by CodeRabbit

  • Documentation
    • Updated submission guidance for recipe 2.0.0 and the AutoModel patch workflow.
    • Documented unified diff packaging, model pinning, API-key authentication, validation, retries, and idempotent submissions.
    • Added guidance for scoring, anti-copy checks, telemetry, troubleshooting, and operational status visibility.
    • Reframed the baseline example as historical reference material.

Update public miner docs for live recipe 2.0 (automodel@v0.5.0 pin +
patch, BYOK X-Lium-Api-Key) and retire the architecture.py/training.py path.
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The documentation replaces the legacy two-script workflow with recipe 2.0.0 AutoModel patch submissions. It updates packaging, authentication, API operations, troubleshooting, evaluation, scoring, emission, and publication guidance.

Changes

AutoModel Patch Workflow

Layer / File(s) Summary
Recipe and submission contract
README.md, docs/README.md, docs/getting-started.md, docs/prism.md, docs/submit.md, examples/baseline/README.md
The guides define AutoModel pin verification, unified diff creation, automodel.base and automodel.patch packaging, optional prism.toml, Lium API-key authentication, and rejection of legacy layouts.
Submission API and operations
docs/api.md, docs/submit.md, docs/prism.md, docs/troubleshooting.md
The documentation covers validation, prechecks, quotas, diff retrieval, idempotency, retries, registration gating, and operational troubleshooting.
Evaluation and scoring rules
docs/scoring.md, docs/prism.md
The scoring guidance updates anti-copy checks, v2 scoring, v3 evaluation, emission rules, publication artifacts, and evaluation routes.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the documentation update for the AutoModel recipe 2.0 miner workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/automodel-recipe-2.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
docs/submit.md (1)

32-40: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Make miner identity explicit in both JSON examples.

  • docs/submit.md#L32-L40: Show X-Miner-Hotkey or document the required miner_hotkey field in submission.json.
  • docs/prism.md#L85-L89: Apply the same identity requirement to the full-guide JSON command.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/submit.md` around lines 32 - 40, Make miner identity explicit in the
JSON submission examples: update docs/submit.md lines 32-40 and docs/prism.md
lines 85-89 to show the X-Miner-Hotkey header or document the required
miner_hotkey field in submission.json, using the same approach in both
locations.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/getting-started.md`:
- Around line 49-54: Update the telemetry-hook contract in
docs/getting-started.md lines 49-54, docs/prism.md lines 49-52,
docs/troubleshooting.md lines 12-13, and examples/baseline/README.md lines 27-28
so prism_telemetry.report(...) remains required while finish_evaluation() is
explicitly optional when evaluation terminates early; keep all four documents
consistent.

In `@docs/prism.md`:
- Around line 77-83: Define one shared gateway variable before the first curl
example in docs/prism.md:77-83 and before the recipe request in
docs/getting-started.md:80-88; reuse that variable for recipe retrieval in
docs/prism.md:98-102 and replace the inconsistent $GATEWAY reference in
docs/prism.md:157-161, keeping the variable name consistent across all affected
examples.

In `@README.md`:
- Around line 58-60: Update the packaging instructions in README.md lines 58-60
and docs/submit.md lines 21-23 to include a conditional step that adds
prism.toml to submission.zip when the file is used, while preserving the
existing automodel.base and automodel.patch packaging workflow.
- Around line 34-39: Replace the cleartext staging gateway documentation so
credential-bearing requests never use HTTP: update README.md lines 34-39,
docs/submit.md lines 109-116, and docs/api.md lines 3-6 to use an HTTPS staging
base URL or explicitly separate staging authentication from the live
X-Lium-Api-Key/BYOK workflow, keeping all three references consistent.

---

Nitpick comments:
In `@docs/submit.md`:
- Around line 32-40: Make miner identity explicit in the JSON submission
examples: update docs/submit.md lines 32-40 and docs/prism.md lines 85-89 to
show the X-Miner-Hotkey header or document the required miner_hotkey field in
submission.json, using the same approach in both locations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 4bf733d0-f924-448d-a50d-6b64700ceb58

📥 Commits

Reviewing files that changed from the base of the PR and between 32d6766 and 8d3cc7e.

📒 Files selected for processing (9)
  • README.md
  • docs/README.md
  • docs/api.md
  • docs/getting-started.md
  • docs/prism.md
  • docs/scoring.md
  • docs/submit.md
  • docs/troubleshooting.md
  • examples/baseline/README.md

Comment thread docs/getting-started.md
Comment on lines +49 to +54
## Telemetry hooks (still required)

Instead of shipping both scripts you can submit `training.py` + `arch_id` referencing a
**published** architecture. The master pulls `architecture.py` from the registry; the
same harness contract applies unchanged. Published archs: `GET /v1/architectures`.
See [Submit](submit.md#training-only-entries).
The harness wrap still requires `prism_telemetry` reporting /
`finish_evaluation` under the AutoModel train entry. Patches that remove or
bypass those hooks fail review (`missing_telemetry_hooks`, zero score,
terminal).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- affected documentation ---'
for f in docs/getting-started.md docs/prism.md docs/troubleshooting.md examples/baseline/README.md; do
  echo "### $f"
  sed -n '1,180p' "$f" | nl -ba | sed -n '1,180p'
done
printf '%s\n' '--- telemetry references ---'
rg -n -i -C 3 'prism_telemetry|finish_evaluation|missing_telemetry_hooks|AutoModel|telemetry' . \
  -g '!node_modules' -g '!dist' -g '!build'
printf '%s\n' '--- repository files ---'
git ls-files | sed -n '1,240p'

Repository: BaseIntelligence/prism

Length of output: 30008


🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- exact affected sections ---'
for spec in \
  'docs/getting-started.md:45:56' \
  'docs/prism.md:43:56' \
  'docs/troubleshooting.md:1:15' \
  'examples/baseline/README.md:1:30' \
  'examples/baseline/training.py:1:100' \
  'top-model/training.py:1:96' \
  'docs/scoring.md:59:70'; do
  file=${spec%%:*}; rest=${spec#*:}; start=${rest%%:*}; end=${rest##*:}
  echo "### $file:$start-$end"
  sed -n "${start},${end}p" "$file" | awk '{printf "%6d  %s\n", NR + '"$start"' - 1, $0}'
done
printf '%s\n' '--- all exact telemetry contract statements ---'
rg -n -C 2 'required|optional|either way|finish_evaluation|missing_telemetry_hooks' \
  docs examples top-model README.md
printf '%s\n' '--- executable repository/config references to the error name ---'
rg -n 'missing_telemetry_hooks|telemetry_hooks|finish_evaluation|prism_telemetry' \
  .github docs examples top-model README.md

Repository: BaseIntelligence/prism

Length of output: 24646


🏁 Script executed:

#!/bin/bash
set -e
python3 - <<'PY'
import ast
from pathlib import Path

docs = [
    "docs/getting-started.md",
    "docs/prism.md",
    "docs/troubleshooting.md",
    "examples/baseline/README.md",
]
terms = ("prism_telemetry", "finish_evaluation", "missing_telemetry_hooks")
for name in docs:
    text = Path(name).read_text()
    hits = []
    for i, line in enumerate(text.splitlines(), 1):
        if any(term in line for term in terms):
            hits.append((i, line.strip()))
    print(f"### {name}")
    for line_no, line in hits:
        print(f"{line_no}: {line}")

for name in ("examples/baseline/training.py", "top-model/training.py"):
    tree = ast.parse(Path(name).read_text(), filename=name)
    train = next(
        node for node in tree.body
        if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) and node.name == "train"
    )
    calls = []
    for node in ast.walk(train):
        if isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute):
            if isinstance(node.func.value, ast.Name) and node.func.value.id == "prism_telemetry":
                calls.append(node.func.attr)
    print(f"### {name} train() telemetry calls")
    print(", ".join(calls) or "(none)")
PY

Repository: BaseIntelligence/prism

Length of output: 1366


Use one authoritative telemetry-hook contract.

Keep prism_telemetry.report(...) required. Mark finish_evaluation() as optional for early evaluation termination in the three conflicting locations.

📍 Affects 4 files
  • docs/getting-started.md#L49-L54 (this comment)
  • docs/prism.md#L49-L52
  • docs/troubleshooting.md#L12-L13
  • examples/baseline/README.md#L27-L28
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/getting-started.md` around lines 49 - 54, Update the telemetry-hook
contract in docs/getting-started.md lines 49-54, docs/prism.md lines 49-52,
docs/troubleshooting.md lines 12-13, and examples/baseline/README.md lines 27-28
so prism_telemetry.report(...) remains required while finish_evaluation() is
explicitly optional when evaluation terminates early; keep all four documents
consistent.

Comment thread docs/prism.md
Comment on lines +77 to +83
```bash
# ZIP via gateway (preferred)
curl -sS -X POST "$BASE_GATEWAY/challenge/prism/v1/submissions" \
-H 'content-type: application/zip' \
-H "X-Miner-Hotkey: <64 lowercase hex>" \
-H "X-Lium-Api-Key: $LIUM_API_KEY" \
--data-binary @submission.zip

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Define and reuse one gateway variable.

  • docs/prism.md#L77-L83: Define GATEWAY or BASE_GATEWAY before the first curl command.
  • docs/getting-started.md#L80-L88: Define GATEWAY before the recipe request.
  • docs/prism.md#L98-L102: Use the same defined variable for recipe retrieval.
  • docs/prism.md#L157-L161: Replace the inconsistent $GATEWAY reference in the precheck command.
📍 Affects 2 files
  • docs/prism.md#L77-L83 (this comment)
  • docs/getting-started.md#L80-L88
  • docs/prism.md#L98-L102
  • docs/prism.md#L157-L161
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/prism.md` around lines 77 - 83, Define one shared gateway variable
before the first curl example in docs/prism.md:77-83 and before the recipe
request in docs/getting-started.md:80-88; reuse that variable for recipe
retrieval in docs/prism.md:98-102 and replace the inconsistent $GATEWAY
reference in docs/prism.md:157-161, keeping the variable name consistent across
all affected examples.

Comment thread README.md
Comment on lines 34 to +39
| Challenge id | `prism` |
| Production gateway | `https://chain.joinbase.ai` |
| Staging gateway | `http://staging.api.joinbase.ai` |
| Submit path | `/challenge/prism/v1/submissions` |
| Recipe | v1.2.0 — telemetry hooks required |
| Recipe | **2.0.0** — AutoModel pin + patch (`automodel@v0.5.0`) |
| Live GPU | Miner-funded Lium — pass `X-Lium-Api-Key` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Do not publish a cleartext staging gateway for credential-bearing requests.

  • README.md#L34-L39: Replace the HTTP staging endpoint or document a staging flow that never sends a real X-Lium-Api-Key.
  • docs/submit.md#L109-L116: Use an HTTPS staging base URL or separate staging authentication from the live BYOK workflow.
  • docs/api.md#L3-L6: Update the staging gateway documentation so clients do not reuse credential-bearing commands over HTTP.
📍 Affects 3 files
  • README.md#L34-L39 (this comment)
  • docs/submit.md#L109-L116
  • docs/api.md#L3-L6
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 34 - 39, Replace the cleartext staging gateway
documentation so credential-bearing requests never use HTTP: update README.md
lines 34-39, docs/submit.md lines 109-116, and docs/api.md lines 3-6 to use an
HTTPS staging base URL or explicitly separate staging authentication from the
live X-Lium-Api-Key/BYOK workflow, keeping all three references consistent.

Comment thread README.md
Comment on lines +58 to 60
# After forking the pin and producing automodel.base + automodel.patch:
zip -j submission.zip automodel.base automodel.patch # + prism.toml if used

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Ensure the documented package command includes optional prism.toml.

  • README.md#L58-L60: Add a conditional ZIP update for prism.toml.
  • docs/submit.md#L21-L23: Add the same conditional packaging step to the preferred submission workflow.
📍 Affects 2 files
  • README.md#L58-L60 (this comment)
  • docs/submit.md#L21-L23
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 58 - 60, Update the packaging instructions in
README.md lines 58-60 and docs/submit.md lines 21-23 to include a conditional
step that adds prism.toml to submission.zip when the file is used, while
preserving the existing automodel.base and automodel.patch packaging workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant