Add KingKong builtin template (Hard mode, ~2.5× Sun difficulty) - #39
Merged
Merged
Conversation
New builtin pet template targeting the "much harder" slot above Sun.
The image set (10 sprites from black-stone egg through cyborg
legend) lives at templates/builtin/kingkong/stages/stage_*/sprite.png.
# Difficulty design — ~2.5× Sun, achieved through rules + curve
The rule_mult clamp floor of 0.5 means usage rules can't go any
lower than Sun's. So extra difficulty comes from two compounding
levers:
1. Activity rules — most cut to zero, milestones halved:
session_start 2 → 1
user_prompt 1 → 0 ← chat doesn't reward
assistant_stop 0 (unchanged from Sun)
tool_success 0 (unchanged)
task_completed 7 → 3 ← halved milestone
subagent_stop 5 → 2 ← halved milestone
pre_compact 1 → 0 ← eliminated
Idle-chat dominance is gone; only deliberate progress moves
the meter (tasks, subagents) plus AI token usage.
2. Level curve — 1.25× Sun via formula
cum(L) = 200 + 188·(L-1) + 3·(L-1)²
L1 = 200 (hatch anchor, consistent across all templates)
L99 = 47,436 (Sun: 37,950, ratio 1.250×)
Per-conv XP projection vs Sun (using PR #37 + #38 baselines):
Profile Sun XP/conv KingKong XP/conv Combined harder
Light (5t) 12 ~6 ~2.5× total time
Medium (10t) 29 ~14 ~2.6×
Heavy (15t) 44 ~21 ~2.5×
Stage triggers identical to Unicorn/Sun (L0/1/7/15/25/40/55/72/86/99).
# Display ordering
Adds `display_order: Option<i32>` to TemplateMeta. Builtin ladder:
unicorn display_order=1 (Easy)
sun display_order=2 (Medium)
kingkong display_order=3 (Hard)
EggPicker.tsx sorts by source → display_order → name. Templates
without `display_order` (user-imported community ones) fall to the
tail and sort by name there.
# Visual + flavor
Labels: "Hard" (black/gold) + "Challenge" (gold/black) — gives the
row an immediately ominous chip pair vs Sun's warm Medium/Wukong.
Stage flavor reads as an evolution arc: obsidian egg → young
primate → silverback → armoured stride → first circuits → cyborg
legend. Default pet name "KingKong"; species flavor "Forged in
obsidian, ascending in titanium."
# Coverage
- `builtin_dirs_exist` now asserts kingkong/ is bundled in
include_dir!
- new `pick_template_kingkong_loads_and_creates_pet` integration
test pins end-to-end load + snapshot (matches the unicorn /
sun canaries — every builtin gets its own load smoke test)
- 310/310 lib tests pass; desktop bundle + tsc clean
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Third builtin pet template, targeting the difficulty slot above Sun. Visuals: 10 sprites that arc from a black-stone egg through young silverback to a cyborg titan with a glowing gold gauntlet (final form).
Difficulty design — ~2.5× Sun
The
rule_multclamp floor of 0.5 means usage rules can't go any lower than Sun. So the 2.5× delta comes from two compounding levers:Activity rules (chat is silent, milestones halved)
session_startuser_promptassistant_stoptool_successtask_completedsubagent_stoppre_compactNet: only deliberate progress moves the meter (task done, subagent dispatched) plus AI token usage.
Level curve — 1.25× Sun
Combined effect
Hits the design target across all usage profiles, not just one.
Display ordering — new
display_orderfieldAdds
meta.display_order: Option<i32>toTemplateMeta. EggPicker.tsx sorts by:display_order(lower first; absent →+Infinity, falls to tail)So the picker now reads top-to-bottom: Unicorn → Sun → KingKong → [community/custom by name].
Visual + flavor
KingKongCoverage
builtin_dirs_existsmoke test extended to assertkingkong/is bundled viainclude_dir!pick_template_kingkong_loads_and_creates_petintegration test pins end-to-end load + snapshot (matches the unicorn / sun canaries)tsc --noEmitcleanTest plan
cargo checkcleantsc --noEmitcleanact-user-promptevents appear in xp_event (only task/subagent/session/usage)🤖 Generated with Claude Code