From sdd
Gateway for core ↔ tech-pack interactions: reads manifests, resolves paths, loads skills/agents, routes commands by phase/component type.
npx claudepluginhub liorcohen/sdd --plugin sddThis skill uses the workspace's default tool permissions.
Single entry point for all core↔tech-pack interactions. No other core file reads `techpack.yaml` directly, resolves tech pack paths, or loads tech pack skills on its own.
Creates, updates, or validates SKILL.md agent skills including frontmatter authoring, bundled resource planning, and three-phase discoverability validation.
Installs skills, agents, and teams from agent-almanac into agentic frameworks via CLI. Supports framework detection, content search, dependency resolution, health auditing, and manifest syncing. Use for project setup or content maintenance.
Manages agent skill dependencies in agents.toml via npx CLI: init projects, add/remove/install/list/sync skills from GitHub for Claude Code, Cursor, VS Code.
Share bugs, ideas, or general feedback.
Single entry point for all core↔tech-pack interactions. No other core file reads techpack.yaml directly, resolves tech pack paths, or loads tech pack skills on its own.
Eight typed operations — see resources/operations.md for detailed implementations.
| Operation | Purpose | Returns |
|---|---|---|
readManifest(namespace) | Parse and return validated techpack.yaml | Typed manifest object |
resolvePath(namespace, path) | Resolve a relative path from manifest to absolute path | Absolute file path |
loadSkill(namespace, skillPath) | Load a tech pack skill into context | Skill content |
loadAgent(namespace, agentRef) | Read agent file, parse frontmatter, resolve skills, spawn as Task subagent | Task subagent with composed prompt |
routeCommand(namespace, command, args) | Invoke the command router skill with structured context | Command result |
routeSkills(namespace, phase, componentType?, agent?) | Invoke the skills router to get relevant skills for a phase | Skills loaded into context |
listComponents(namespace) | Read component types from manifest | Component type list with metadata |
dependencyOrder(namespace) | Build topological order from dependency graph | Ordered component type list |
Core skills invoke techpacks operations using this pattern:
Invoke techpacks.readManifest for the active tech pack namespace.
Read the `components` section to find the agent assigned to a given component type.
Invoke techpacks.routeSkills with:
namespace: <active-namespace>
phase: plan-generation
component_type: <type>
Invoke techpacks.loadAgent with:
namespace: <active-namespace>
agentRef: { name: "my-agent", path: "agents/my-agent.md" }
skills: ["coding-standards", "testing-standards"]
Read sdd/sdd-settings.yaml (or .sdd/sdd-settings.yaml) to find active tech packs:
techpacks:
<namespace>:
name: <tech-pack-name>
namespace: <namespace>
version: "1.0.0"
mode: internal # or external, git
path: <tech-pack-directory>
For internal tech packs, resolve path relative to the plugin root directory.
For git-mode tech packs, resolve install_path relative to the project root.
# Git-mode example:
techpacks:
my-pack:
name: my-pack
namespace: my-pack
version: "1.0.0"
mode: git
repo: https://github.com/org/my-pack.git
ref: v1.0.0
install_path: sdd/.techpacks/my-pack/techpack
techpack.yaml directly.techpacks.system-run.sh agent frontmatter to extract only structured metadata. Spawn agents as Task subagents with their own context.system-run.sh log write --level info --source techpacks.<operation> --message "<description>".The techpacks gateway uses these system CLI commands:
| Command | Purpose |
|---|---|
system-run.sh tech-pack validate --path <dir> | Validate a manifest |
system-run.sh tech-pack info --namespace <ns> | Read manifest data |
system-run.sh tech-pack list | List installed tech packs |
system-run.sh agent frontmatter --path <file> | Extract agent metadata (prompt isolation) |
system-run.sh log write --level <l> --source <s> --message <m> | Structured logging |