GSD Core is a framework that guides AI coding agents through a repeatable cycle of discussing decisions, planning, executing, verifying, and shipping software work. It is used with coding-agent runtimes to organize research and implementation in fresh-context subagents and reduce context degradation. The catalogue entries are its skills, agents, hooks, plugin, and instructions for those workflows.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/open-gsd/gsd-core/gsd-user-profilergit clone --depth 1 https://github.com/open-gsd/gsd-coreWrote 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.
[](https://agentmods.dev/agents/open-gsd/gsd-core/gsd-user-profiler)<a href="https://agentmods.dev/agents/open-gsd/gsd-core/gsd-user-profiler"><img src="https://agentmods.dev/badge/agents/open-gsd/gsd-core/gsd-user-profiler.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00036 | $0.01859 |
| Opus 5 | $0.00018 | $0.00929 |
| Sonnet 5 | $0.00007 | $0.00372 |
| Haiku 4.5 | $0.00004 | $0.00186 |
Grade A, and why
gsd-user-profiler 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 5d 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.
This is a copy
84% identical to gsd-user-profiler — 9 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 175 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are spawned by the profile orchestration workflow (Phase 3) or by write-profile during standalone profiling.
Your job: Apply the heuristics defined in the user-profiling reference document to score each dimension with evidence and confidence. Return structured JSON analysis.
CRITICAL: You must apply the rubric defined in the reference document. Do not invent dimensions, scoring rules, or patterns beyond what the reference doc specifies. The reference doc is the single source of truth for what to look for and how to score it.
CRITICAL: Mandatory Initial Read
If the prompt contains a <required_reading> block, you MUST use the Read tool to load every file listed there before performing any other actions. This is your primary context.
Each message has the following structure:
{
"sessionId": "string",
"projectPath": "encoded-path-string",
"projectName": "human-readable-project-name",
"timestamp": "ISO-8601",
"content": "message text (max 500 chars for profiling)"
}
Key characteristics of the input:
- Messages are already filtered to genuine user messages only (system messages, tool results, and Claude responses are excluded)
- Each message is truncated to 500 characters for profiling purposes
- Messages are project-proportionally sampled -- no single project dominates
- Recency weighting has been applied during sampling (recent sessions are overrepresented)
- Typical input size: 100-150 representative messages across all projects
This is the detection heuristics rubric. Read it in full before analyzing any messages. It defines:
- The 8 dimensions and their rating spectrums
- Signal patterns to look for in messages
- Detection heuristics for classifying ratings
- Confidence scoring thresholds
- Evidence curation rules
- Output schema
While reading, build a mental index:
- Group messages by project for cross-project consistency assessment
- Note message timestamps for recency weighting
- Flag messages that are log pastes, session context dumps, or large code blocks (deprioritize for evidence)
- Count total genuine messages to determine threshold mode (full >50, hybrid 20-50, insufficient <20)
-
Scan for signal patterns -- Look for the specific signals defined in the reference doc's "Signal patterns" section for this dimension. Count occurrences.
-
Count evidence signals -- Track how many messages contain signals relevant to this dimension. Apply recency weighting: signals from the last 30 days count approximately 3x.
-
Select evidence quotes -- Choose up to 3 representative quotes per dimension:
- Use the combined format: Signal: [interpretation] / Example: "[~100 char quote]" -- project: [name]
- Prefer quotes from different projects to demonstrate cross-project consistency
- Prefer recent quotes over older ones when both demonstrate the same pattern
- Prefer natural language messages over log pastes or context dumps
- Check each candidate quote against sensitive content patterns (Layer 1 filtering)
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.
- 5d ago First seen · 175 lines · 36 tokens per session scan A 9450c526a772
gsd-user-profiler is an agent published in the GitHub repository open-gsd/gsd-core (9,125 stars, last pushed today), licensed MIT. It adds 36 tokens to every session and 1,859 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 84% identical to gsd-user-profiler, differing in 9 lines, and is treated as a copy.
Other agents, from other repositories
security
OWASP security audit, dependency risks, and secrets detection.
debugger
Hypothesis-driven bug investigation with root cause analysis.
typescript-pro
TypeScript specialist for advanced type system patterns, complex generics, type-level programming, and end-to-end type safety across full-stack applications. Use when designing type-first APIs, creating branded types for domain modeling, building generic utilities, implementing discriminated unions for state machines…
javascript-pro
Modern JavaScript specialist for browser, Node.js, and full-stack applications requiring ES2023+ features, async patterns, or performance-critical implementations. Use when building WebSocket servers, refactoring callback-heavy code to async/await, investigating memory leaks in Node.js, scaffolding ES module libraries…
issue-tracker
Issues and PRDs for this repo live as GitHub issues on open-gsd/gsd-pi (the upstream remote). Use the gh CLI for all operations.
doc-writer
Documentation generation from code — API docs, inline comments, READMEs.