# Solution Package Builder

> Assemble a submission-ready writer package from final method, result, robustness, figure, and human-decision artifacts, then freeze approved numerical claims with provenance.

- Skill: `zhnnky329/solution-package-builder` (Agent Skill)
- Install (CLI): `npx skillmds@latest add zhnnky329/solution-package-builder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/zhnnky329/solution-package-builder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: zhnnky329 (https://skillmd.com/u/zhnnky329)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/zhnnky329/solution-package-builder

---


# Purpose

Create the writer's single source package and immutable numerical snapshot. Do not manufacture missing judgments or freeze unapproved claims.

# Preconditions

- `rigor_profile` is `submission`.
- Final method explanation, final result analysis, robustness report, and figure plan exist.
- Human method, result, stability, and claim-scope decisions exist in `qx_decisions.jsonl`.
- Canonical sources are current.

# Workflow

1. Collect final method structure, result claims, limitations, figures, tables, and decision provenance.
2. Draft `results/Qx/reports/qx_solution_package_for_writer.md`.
3. Flag every proposed top-line claim with:
   - value and unit;
   - canonical source path and location;
   - robustness support;
   - decision ID for claim scope or rationale;
   - confidence/limitation.
4. Invoke one final choice card when package sign-off is missing:
   - keep;
   - downgrade;
   - drop.
5. Route the human answer to `modeler-decision-logger` as `package_signoff`.
6. Only after sign-off, generate `results/Qx/reports/frozen_numbers.json`.
7. Verify every numerical package claim resolves to the freeze and every judgment claim resolves to a human decision ID.

# Frozen Number Contract

Each entry contains:

```json
{
  "claim_id": "q1_main_rmse",
  "value": 2.4,
  "unit": "units",
  "source_file": "results/Q1/experiments/final/metrics/main.json",
  "source_locator": "$.rmse",
  "frozen_at": "ISO-8601",
  "frozen_by_skill": "solution-package-builder",
  "decision_id": "q1_package_signoff"
}
```

Use a source line only for stable text files; use a JSON path, table key, or row/column identifier for structured data.

# Rules

- Do not create `solution-package-builder_modeler_decision.md`.
- Do not emit `frozen_numbers.json` before human package sign-off.
- Never edit an existing freeze by hand.
- Transcribe human rationales; do not re-compose them as stronger claims.
- The package may cite the compact method-card history but must not depend on a separate iteration log.
- Do not copy raw exploratory outputs into the package without final validation.

# Change and Re-freeze

When a canonical source changes after freeze:

1. append the reason to `freeze_change_log.md`;
2. update and rerun the canonical source;
3. obtain renewed human judgment when the evidence changed materially;
4. regenerate the freeze;
5. run scoped consistency for Qx.

# Verification

- All prerequisites are final and current.
- Package sign-off exists in the JSONL ledger.
- Every frozen value has a real canonical source and stable locator.
- Every package number matches the freeze.
- Every modeling judgment traces to a human decision.
- Writer can use the package without searching scattered results.

