hill-chart

hill-chart is a skill for Claude Code from nguyenvanphituoc/shapeup-sdlc-plugin. It costs 149 tokens per session (1,873 once invoked), scanned A, original, MIT.

A progress dashboard for Shape Up builds, showing each work scope’s position on a Hill Chart. A Hill Chart shows whether work is still being figured out, has been solved, is in execution, or is finished.

In plain words
What is it for?
Use it to display one build’s hill chart or a portfolio view across pitches, including scope phases, gate health, rounds, and unresolved references.
Why use it?
It gives teams a current view of build progress without inventing statuses or erasing historical information.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: mentions Claude Code.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the shapeup-sdlc-plugin plugin — 17 skills, 11 commands, 4 hooks shipped together

Good fit Use it to display one build’s hill chart or a portfolio view across pitches, including scope phases, gate health, rounds, and unresolved references.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add nguyenvanphituoc/shapeup-sdlc-plugin
Claude Code
/plugin install shapeup-sdlc-plugin

Made for: Claude Code.

Or install shapeup-sdlc-plugin, the plugin that ships this one along with the rest of its 17 skills, 11 commands, 4 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for hill-chart

README.md
[![agentmods](https://agentmods.dev/badge/skills/nguyenvanphituoc/shapeup-sdlc-plugin/hill-chart.svg)](https://agentmods.dev/skills/nguyenvanphituoc/shapeup-sdlc-plugin/hill-chart)
Your own site
<a href="https://agentmods.dev/skills/nguyenvanphituoc/shapeup-sdlc-plugin/hill-chart"><img src="https://agentmods.dev/badge/skills/nguyenvanphituoc/shapeup-sdlc-plugin/hill-chart.svg" alt="Measured on agentmods" height="20"></a>
Per session 149 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,873 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00149 $0.01873
Opus 5 $0.00075 $0.00937
Sonnet 5 $0.00030 $0.00375
Haiku 4.5 $0.00015 $0.00187

Measured 8d ago against content hash 504e2cb2cb9d, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

hill-chart scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/hill-chart/SKILL.md · 152 lines

How it starts

The opening of the file, as written. The whole thing — 152 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Hill Chart

Renders what the harness already derives mechanically — never invents a position, never re-runs a computation that would erase true history.

You are not a worker: no WorkOrder, no WorkResult, invoked directly by the user (or by /hill) exactly like shapeup is. There is nothing to declare in skills/tech-lead/schemas/domain.schema.json and nothing to teach harness compile or harness reduce ingest — those steps exist only for dispatched workers.

What you read

Two tiers, per project (kernel/lib/paths.mjs's sharedRoot/localRoot):

  • COMMITTEDshapeup/<slug>/hill/<scope-id>.yml, one file per scope, two fields (scope_id:, phase:), a 4-value enum: UPHILL_UNKNOWN → UPHILL_SOLVED → DOWNHILL_EXECUTION → FINISHED. Written by harness reduce hill. Survives even after a project's local run trace is cleaned up post-ship.
  • LOCAL.shapeup/<slug>/graph.jsonl, the run graph (see kernel/reduce/graph.mjs). Written by harness reduce graph. Supplies everything else: current-round verdict health, gates, orders, rounds, dangling references.

Discovery

Do not readdir either root bare — both hold non-pitch entries (shapeup/knowledge-base/, .shapeup/metrics/, .shapeup/exports/, .shapeup/pitch-archive/, loose files). A directory counts as a pitch when:

  • Committed: shapeup/<slug>/ contains hill/, scopes/, or shaping/.
  • Local: .shapeup/<slug>/ contains receipt.json (the mechanical "a run started" fact).

Union the two; track hasCommitted / hasLocal per slug independently. A slug can be committed-only (shipped, local trace cleaned up), local-only (very early, before scoping), or both.

Freshness — read this before shelling out

For every slug where hasLocal is true, freshen before reading:

node "${CLAUDE_PLUGIN_ROOT}/kernel/harness.mjs" reduce hill --slug <slug>
node "${CLAUDE_PLUGIN_ROOT}/kernel/harness.mjs" reduce graph --slug <slug>

For a committed-only slug (hasCommitted && !hasLocal), NEVER call reduce hill. deriveHill() folds whatever T0 verdicts currently exist on disk; a committed-only pitch has none (the local trace was cleaned up after shipping), so re-running it would silently regress a true historical FINISHED down to a fabricated UPHILL_SOLVED — reading absence of evidence as evidence of absence. Read shapeup/<slug>/hill/*.yml for those slugs exactly as committed, and render them with the archived state the template already implements (see below). Same reasoning applies to reduce graph — there is no local trace to append from.

Read the full file on GitHub · 152 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 152 lines · 149 tokens per session scan A 504e2cb2cb9d

Subscribe to this mod's changes

hill-chart is a skill published in the GitHub repository nguyenvanphituoc/shapeup-sdlc-plugin (2 stars, last pushed yesterday), licensed MIT. It adds 149 tokens to every session and 1,873 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.