Capture and Organize Project Decisions
Persists user project decisions and preferences across sessions into a local mdbase so future agents recover intent without re-deriving it.
Why it matters
Persist critical project decisions, constraints, and user intent across sessions and agents. Ensure that all future interactions can access and build upon established project memory without re-derivation.
Outcomes
What it gets done
Record user-stated project rules, constraints, and preferences.
Store architectural, tech-stack, and workflow decisions.
Maintain a persistent memory base for project-specific information.
Enable agents to retrieve user intent and project history.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-user-thoughts | bash Overview
user-thoughts.SKILL
A project-memory skill that captures user decisions and preferences as raw entries, then organizes them into a dimensioned local mdbase for future agent sessions. Use when the user states or revises a persistent project decision, constraint, or preference; not for small talk or content marked to ignore.
What it does
Persists user project decisions, constraints, and preferences across sessions and agents into a project-local mdbase, so a future agent can recover intent without re-deriving it. It captures without replacing normal task execution - if the user says "make the button red," the agent both makes the change and records the preference. Its core workflow:
User message -> Agent identifies persistent project intent -> write to #raw/
-> /ustht sortin groups raw entries into #mdbase/
-> /ustht mdbase show exposes the organized memory base
It runs in four modes: passive, where only explicit commands run; instant, where project-relevant thoughts are written to #raw/ as they appear; ignore, a temporary interval marked with ignore start/ignore end that is never recorded; and read-only, where show commands still work when write tools are unavailable but writes explain that persistence isn't possible. State lives under ~/.ustht/ in a fixed directory layout - raw/, ignored/, mdbase/ with dimension files like rules.md, plans.md, and dev-stack.md, plus a ui/ subfolder and an export/ folder - tracked via a define.ini key/value file (SKILL_STATUS, INSTANT_STATUS, LAST_SORTIN) that must be rewritten atomically, never appended in fragments. Nine bundled Python scripts handle mechanical operations: status, init, show raw/mdbase, sortin, write_raw, toggle, and ignore_ops. resort deliberately has no standalone script because it requires semantic review, deduplication, and restructuring by an agent rather than a mechanical pass. sortin is soft maintenance that appends unprocessed raw entries into matching mdbase files and marks them processed; resort is hard maintenance that deduplicates records, moves entries between dimensions when justified by the user's own wording, and marks deprecated dimensions instead of deleting them. Commands, available as /user-thoughts or /ustht, cover status and toggles, maintenance, ignore management, and content review, export, and import, and can be chained with &&.
When to use - and when NOT to
Use it when the user states or revises project rules, constraints, or requirements; architecture, tech-stack, data-model, deployment, or workflow decisions; UI/UX direction or design rationale; backlog items or rejected options that future agents should inherit; or issues a direct /user-thoughts//ustht command. Do not use it for unrelated small talk, transient chatter, or content the user explicitly asks to ignore. Raw user wording must be preserved verbatim - the skill explicitly forbids translating, summarizing, or cleaning the user's intent unless asked, though its own bundled files and command output should follow the user's conversation language.
Inputs and outputs
Input is a user statement containing persistent project intent, or an explicit /ustht command. Output is a raw entry appended under #raw/, later organized into the dimensioned #mdbase/ structure via sortin, or a status/export view of that memory base.
Integrations
Self-contained: read/write and bash tools for file operations under .ustht/, with an optional SubAgent for semantic sortin/resort maintenance spanning many files. It has no related skills by design - it is intentionally scoped to project-local user-intent persistence.
Who it's for
Coding agents and users who need project decisions and constraints to survive across sessions and across different agents without being re-derived or forgotten.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.