SKILL
DEPRECATED on 2026-09-06 — do not use this skill to produce or revise an LTP model. Use `ltp-project` instead: it writes the Reason Commons `*.ltp.yaml` interchange file, the same document the app imports and exports as JSON or YAML with history. What remains here is the read-only dashboard over legacy `ltp-model.yaml` files and its build scripts.
Deprecated 2026-09-06. This skill's
ltp-model.yamlformat was a second, incompatible way of writing an LTP model, and a model written this way cannot be imported into Reason Commons or carry the version and event history the app keeps. Use../ltp-project/SKILL.mdfor any new or revised model; a space's export from the app (.reason-commons/<space-id>.ltp.jsonin a connected repository) is the canonical representation of a model with history. GitHub issue tracking for transition-tree actions is done by the Reason Commons GitHub projection, which writes and reconciles managed issues itself, soscripts/sync_github_issues.pyis retired with it. The dashboard underdashboard/andscripts/serve_dashboard.pyremain as a viewer for the legacyltp-model.yamlfiles still bundled on the site until the dashboard can read the interchange format.
Project LTP
Reconstruct the logic implicit in a project and maintain one evidence-backed causal model. Render the Goal Tree, Current Reality Tree, Evaporating Clouds, Future Reality Tree, Prerequisite Tree, and Transition Tree as views of that shared model rather than as unrelated documents.
Required operating principles
- Classify every material statement as
observed,inferred,provisional,confirmed, ordisputed. - Attach evidence, source paths, line ranges when available, reasoning, and confidence to observed and inferred entities.
- Never present inferred business intent as fact.
- Express important causal links as:
If [cause], then [effect], because [assumption]. - Reuse stable entity and link identifiers across all trees.
- Record tree membership under the model's
viewsmap. - Maintain the machine-readable model in
ltp-model.yaml. - Continue with a clearly marked provisional goal when evidence is incomplete.
- Never claim repository coverage that was not actually achieved.
Read references/principles-and-model.md before building or revising the
causal model.
Choose the analysis mode
Forward mode
Use when the primary input is a codebase, system, or collection of project artifacts.
Build in this order:
- Evidence map
- Goal Tree
- Current Reality Tree
- Evaporating Clouds
- Future Reality Tree
- Prerequisite Tree
- Transition Tree
- Next-action recommendation
Reverse mode
Use when the primary input is a TODO list, roadmap, implementation plan, or task set. Treat each task as a candidate Transition Tree action, infer the logic it is supposed to serve, and reject or flag tasks that do not trace to the goal.
Reconciliation mode
Use when both implementation evidence and a plan are available. Compare what the code does, what the plan assumes, what the goal requires, and what work is missing or irrelevant.
Read references/analysis-workflow.md for the full examination and
reconciliation procedure.
Repository workflow
1. Inventory
Enumerate files and classify them as source, tests, configuration, infrastructure, documentation, schemas, UI text, CI/CD, monitoring, plans, generated files, vendor dependencies, binaries, or unknown.
2. Examine behavior
Identify actors, inputs, outputs, workflows, state changes, integrations, failure paths, and acceptance criteria. Prefer evidence in this order:
- Executable behavior and tests
- Configuration and schemas
- Public interfaces and contracts
- Architecture decisions
- Operational documentation
- Issues and plans
- README claims
- Comments and TODOs
- Names and directory structure
3. Find intent and pain signals
Look for product claims, architectural intent, incomplete work, repeated failures, workarounds, contradictions, reliability risks, security risks, deprecations, and missing implementations.
4. Synthesize one causal model
Create entities, evidence items, assumptions, links, open questions,
contradictions, coverage gaps, view membership, and the current constraint in
ltp-model.yaml.
5. Render the trees
Read references/tree-construction.md and apply the construction rules for
each tree. Reuse entity IDs whenever the same condition appears in multiple
views.
6. Determine what to work on next
Identify the current constraint, locate the earliest blocked objective, prefer high-leverage actions over visible activity, and choose one primary action. State its expected immediate effect and the uncertainty most likely to change the recommendation.
Required files
When the user asks for a full analysis, create an ltp/ directory with the
canonical deliverables below:
00-coverage-and-evidence.md01-project-model.md02-goal-tree.md03-current-reality-tree.md04-evaporating-clouds.md05-future-reality-tree.md, including negative-branch analysis06-prerequisite-tree.md07-transition-tree.md08-next-action.md09-assumptions-and-questions.mdltp-model.yaml
Create throughput.yaml only when a defensible goal unit and real observations
are available. Never invent throughput history to fill the dashboard.
Use Mermaid diagrams when useful, but ensure every diagram also has a readable text representation.
Read references/validation-and-deliverables.md for validation checks,
incremental-update behavior, output requirements, and the final response
format.
Track actions as GitHub Issues
When the user wants transition-tree actions tracked, assigned, or closed as
GitHub Issues, read references/github-sync.md and use:
python skills/project-ltp/scripts/sync_github_issues.py status --project /path/to/project
status and pull are safe to run unprompted. push writes to GitHub, so run
it as a dry run first and only pass --apply once the user has seen the plan.
Hold the boundary the sync depends on: the model owns what an action is, and
the issue owns whether it is open, assigned, or done. Never record execution
state in ltp-model.yaml, and never resolve reported drift by inventing an
answer — say which side changed and let the user decide.
Local dashboard
When the user asks for a visual or local interface, read
references/dashboard-and-throughput.md, make the shared model dashboard-ready,
then run:
python skills/project-ltp/scripts/serve_dashboard.py --project /path/to/project --open
Treat the dashboard as a read-only view of the YAML files, not as a second source of truth. Bind to loopback unless the user explicitly requests network access.
Completion rules
Before finalizing:
- Validate causal sufficiency and expose assumptions.
- Check cross-tree identifier consistency.
- Distinguish observations from interpretations.
- List contradictions and unresolved questions.
- Report excluded, unreadable, generated, binary, or oversized files.
- Give one primary next action, not an unranked task list.
- State what evidence could overturn the recommendation.
- Validate stable link IDs and all entity/link references in
views.