invariants-and-non-goals

Define and persist task invariants, non-goals, and forbidden changes as INVARIANTS_AND_NON_GOALS.md.

6|Updated Jul 10, 2026
One-click install
npx skills add https://github.com/Mozurok/fhorja.dev --skill invariants-and-non-goals-mozurok
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: invariants-and-non-goals
Source: https://github.com/Mozurok/fhorja.dev/tree/main/.claude/skills/invariants-and-non-goals
Command: npx skills add https://github.com/Mozurok/fhorja.dev --skill invariants-and-non-goals-mozurok

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI-assisted coding sessions often drift into unplanned refactors or break contracts that were never written down. This Skill locks implementation boundaries before planning or coding by recording invariants, non-goals, and forbidden changes on disk, so every later step reads the same constraints instead of guessing. ## Core Features & Use Cases - Boundary Definition: Identifies external behavior, contracts, and data assumptions that must remain unchanged, plus modules that should not be touched. - Scope Guardrails: Records tempting but out-of-scope refactors and forbidden changes to prevent scope creep during implementation. - State Persistence: Writes INVARIANTS_AND_NON_GOALS.md and updates TASK_STATE.md with constraints, risks, and the recommended next command. - Use Case: After impact analysis on a feature touching authentication flows, run this Skill to lock session-handling invariants (logout, backgrounding, force-quit) before any implementation plan is written. ## Quick Start Run the invariants-and-non-goals command on the active task to lock implementation boundaries into INVARIANTS_AND_NON_GOALS.md before planning begins.

Frequently Asked Questions about invariants-and-non-goals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I lock implementation boundaries before coding a feature?▼

Run this command after impact analysis to identify invariants, non-goals, and forbidden changes, then persist them in INVARIANTS_AND_NON_GOALS.md. Downstream planning and implementation commands read this file instead of re-deriving constraints.

When should I define invariants and non-goals for a task?▼

Use it when impact analysis is done or mostly clear and the task may touch sensitive behavior, contracts, schema, or runtime paths. Skip it when the task is still too unclear to define safe boundaries or boundaries are already locked.

What goes into INVARIANTS_AND_NON_GOALS.md?▼

The file contains invariants, non-goals, forbidden changes, risky temptations to avoid, open boundary questions, and the recommended next command with editor mode. Each section is concrete and implementation-oriented.

What happens if boundaries are already locked for my task?▼

The command returns a no-op instead of rewriting artifacts. It emits a short NO_OP note for traceability and routes to the best next command without rephrasing existing files.

How are uncertain invariants handled during boundary definition?▼

Uncertain invariants that affect correctness are surfaced as open boundary questions rather than guessed. Claims must be grounded in files read this session or captured references, otherwise the command abstains and routes to an investigation step.