From 1e351f36ecf9febe33979eb92fa7c41579005fb9 Mon Sep 17 00:00:00 2001 From: Snider Date: Tue, 17 Mar 2026 20:49:10 +0000 Subject: [PATCH] feat: embed prompts into pkg/prompts via go:embed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move prompts/ → pkg/prompts/lib/ (112 templates + personas) - pkg/prompts provides Template(), Persona(), ListTemplates(), ListPersonas() - prep.go uses embedded prompts instead of filesystem reads - No external file dependency — prompts compiled into binary - Remove old prompts/ directory Co-Authored-By: Virgil --- pkg/agentic/prep.go | 16 +--- .../personas/design/design-brand-guardian.md | 0 .../design/design-image-prompt-engineer.md | 0 .../design-inclusive-visuals-specialist.md | 0 .../personas/design/design-ui-designer.md | 0 .../personas/design/design-ux-architect.md | 0 .../personas/design/design-ux-researcher.md | 0 .../design/design-visual-storyteller.md | 0 .../personas/design/design-whimsy-injector.md | 0 .../engineering/engineering-ai-engineer.md | 0 ...ering-autonomous-optimization-architect.md | 0 .../engineering-backend-architect.md | 0 .../engineering/engineering-data-engineer.md | 0 .../engineering-devops-automator.md | 0 .../engineering-frontend-developer.md | 0 ...engineering-incident-response-commander.md | 0 .../engineering-rapid-prototyper.md | 0 .../engineering-security-engineer.md | 0 .../engineering-senior-developer.md | 0 .../engineering-technical-writer.md | 0 .../prompts/lib}/personas/examples/README.md | 0 .../examples/nexus-spatial-discovery.md | 0 .../examples/workflow-landing-page.md | 0 .../personas/examples/workflow-startup-mvp.md | 0 .../personas/examples/workflow-with-memory.md | 0 .../marketing-carousel-growth-engine.md | 0 .../marketing/marketing-content-creator.md | 0 .../marketing/marketing-growth-hacker.md | 0 .../marketing/marketing-instagram-curator.md | 0 .../marketing-linkedin-content-creator.md | 0 .../marketing-reddit-community-builder.md | 0 .../marketing/marketing-seo-specialist.md | 0 .../marketing-social-media-strategist.md | 0 .../marketing/marketing-tiktok-strategist.md | 0 .../marketing/marketing-twitter-engager.md | 0 .../personas/paid-media/paid-media-auditor.md | 0 .../paid-media-creative-strategist.md | 0 .../paid-media-paid-social-strategist.md | 0 .../paid-media/paid-media-ppc-strategist.md | 0 .../paid-media-programmatic-buyer.md | 0 .../paid-media-search-query-analyst.md | 0 .../paid-media-tracking-specialist.md | 0 .../product-behavioral-nudge-engine.md | 0 .../product/product-feedback-synthesizer.md | 0 .../product/product-sprint-prioritizer.md | 0 .../product/product-trend-researcher.md | 0 .../project-management-experiment-tracker.md | 0 .../project-management-project-shepherd.md | 0 .../project-management-studio-operations.md | 0 .../project-management-studio-producer.md | 0 .../project-manager-senior.md | 0 .../sales/sales-account-strategist.md | 0 .../lib}/personas/sales/sales-coach.md | 0 .../personas/sales/sales-deal-strategist.md | 0 .../personas/sales/sales-discovery-coach.md | 0 .../lib}/personas/sales/sales-engineer.md | 0 .../sales/sales-outbound-strategist.md | 0 .../personas/sales/sales-pipeline-analyst.md | 0 .../sales/sales-proposal-strategist.md | 0 .../macos-spatial-metal-engineer.md | 0 .../terminal-integration-specialist.md | 0 .../specialized/accounts-payable-agent.md | 0 .../specialized/agentic-identity-trust.md | 0 .../specialized/agents-orchestrator.md | 0 .../blockchain-security-auditor.md | 0 .../specialized/compliance-auditor.md | 0 .../specialized/identity-graph-operator.md | 0 .../specialized/lsp-index-engineer.md | 0 ...alized-cultural-intelligence-strategist.md | 0 .../specialized-developer-advocate.md | 0 .../specialized/specialized-model-qa.md | 0 .../lib}/personas/specialized/zk-steward.md | 0 .../lib}/personas/strategy/EXECUTIVE-BRIEF.md | 0 .../lib}/personas/strategy/QUICKSTART.md | 0 .../coordination/agent-activation-prompts.md | 0 .../coordination/handoff-templates.md | 0 .../lib}/personas/strategy/nexus-strategy.md | 0 .../strategy/playbooks/phase-0-discovery.md | 0 .../strategy/playbooks/phase-1-strategy.md | 0 .../strategy/playbooks/phase-2-foundation.md | 0 .../strategy/playbooks/phase-3-build.md | 0 .../strategy/playbooks/phase-4-hardening.md | 0 .../strategy/playbooks/phase-5-launch.md | 0 .../strategy/playbooks/phase-6-operate.md | 0 .../runbooks/scenario-enterprise-feature.md | 0 .../runbooks/scenario-incident-response.md | 0 .../runbooks/scenario-marketing-campaign.md | 0 .../strategy/runbooks/scenario-startup-mvp.md | 0 .../support/support-analytics-reporter.md | 0 .../support-executive-summary-generator.md | 0 .../support/support-finance-tracker.md | 0 .../support-infrastructure-maintainer.md | 0 .../support-legal-compliance-checker.md | 0 .../support/support-support-responder.md | 0 .../testing/testing-accessibility-auditor.md | 0 .../personas/testing/testing-api-tester.md | 0 .../testing/testing-evidence-collector.md | 0 .../testing-performance-benchmarker.md | 0 .../testing/testing-reality-checker.md | 0 .../testing/testing-test-results-analyzer.md | 0 .../testing/testing-tool-evaluator.md | 0 .../testing/testing-workflow-optimizer.md | 0 .../lib}/templates/api-consistency.yaml | 0 .../prompts/lib}/templates/bug-fix.yaml | 0 .../prompts/lib}/templates/code-review.yaml | 0 .../prompts/lib}/templates/dead-code.yaml | 0 .../lib}/templates/dependency-audit.yaml | 0 .../prompts/lib}/templates/doc-sync.yaml | 0 .../prompts/lib}/templates/feature-port.yaml | 0 .../prompts/lib}/templates/new-feature.yaml | 0 .../lib}/templates/prod-push-polish.md | 0 .../prompts/lib}/templates/refactor.yaml | 0 .../prompts/lib}/templates/test-gaps.yaml | 0 pkg/prompts/prompts.go | 95 +++++++++++++++++++ 114 files changed, 100 insertions(+), 11 deletions(-) rename {prompts => pkg/prompts/lib}/personas/design/design-brand-guardian.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-image-prompt-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-inclusive-visuals-specialist.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-ui-designer.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-ux-architect.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-ux-researcher.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-visual-storyteller.md (100%) rename {prompts => pkg/prompts/lib}/personas/design/design-whimsy-injector.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-ai-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-autonomous-optimization-architect.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-backend-architect.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-data-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-devops-automator.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-frontend-developer.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-incident-response-commander.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-rapid-prototyper.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-security-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-senior-developer.md (100%) rename {prompts => pkg/prompts/lib}/personas/engineering/engineering-technical-writer.md (100%) rename {prompts => pkg/prompts/lib}/personas/examples/README.md (100%) rename {prompts => pkg/prompts/lib}/personas/examples/nexus-spatial-discovery.md (100%) rename {prompts => pkg/prompts/lib}/personas/examples/workflow-landing-page.md (100%) rename {prompts => pkg/prompts/lib}/personas/examples/workflow-startup-mvp.md (100%) rename {prompts => pkg/prompts/lib}/personas/examples/workflow-with-memory.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-carousel-growth-engine.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-content-creator.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-growth-hacker.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-instagram-curator.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-linkedin-content-creator.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-reddit-community-builder.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-seo-specialist.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-social-media-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-tiktok-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/marketing/marketing-twitter-engager.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-auditor.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-creative-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-paid-social-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-ppc-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-programmatic-buyer.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-search-query-analyst.md (100%) rename {prompts => pkg/prompts/lib}/personas/paid-media/paid-media-tracking-specialist.md (100%) rename {prompts => pkg/prompts/lib}/personas/product/product-behavioral-nudge-engine.md (100%) rename {prompts => pkg/prompts/lib}/personas/product/product-feedback-synthesizer.md (100%) rename {prompts => pkg/prompts/lib}/personas/product/product-sprint-prioritizer.md (100%) rename {prompts => pkg/prompts/lib}/personas/product/product-trend-researcher.md (100%) rename {prompts => pkg/prompts/lib}/personas/project-management/project-management-experiment-tracker.md (100%) rename {prompts => pkg/prompts/lib}/personas/project-management/project-management-project-shepherd.md (100%) rename {prompts => pkg/prompts/lib}/personas/project-management/project-management-studio-operations.md (100%) rename {prompts => pkg/prompts/lib}/personas/project-management/project-management-studio-producer.md (100%) rename {prompts => pkg/prompts/lib}/personas/project-management/project-manager-senior.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-account-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-coach.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-deal-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-discovery-coach.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-outbound-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-pipeline-analyst.md (100%) rename {prompts => pkg/prompts/lib}/personas/sales/sales-proposal-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/spatial-computing/macos-spatial-metal-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/spatial-computing/terminal-integration-specialist.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/accounts-payable-agent.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/agentic-identity-trust.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/agents-orchestrator.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/blockchain-security-auditor.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/compliance-auditor.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/identity-graph-operator.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/lsp-index-engineer.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/specialized-cultural-intelligence-strategist.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/specialized-developer-advocate.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/specialized-model-qa.md (100%) rename {prompts => pkg/prompts/lib}/personas/specialized/zk-steward.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/EXECUTIVE-BRIEF.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/QUICKSTART.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/coordination/agent-activation-prompts.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/coordination/handoff-templates.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/nexus-strategy.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-0-discovery.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-1-strategy.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-2-foundation.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-3-build.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-4-hardening.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-5-launch.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/playbooks/phase-6-operate.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/runbooks/scenario-enterprise-feature.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/runbooks/scenario-incident-response.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/runbooks/scenario-marketing-campaign.md (100%) rename {prompts => pkg/prompts/lib}/personas/strategy/runbooks/scenario-startup-mvp.md (100%) rename {prompts => pkg/prompts/lib}/personas/support/support-analytics-reporter.md (100%) rename {prompts => pkg/prompts/lib}/personas/support/support-executive-summary-generator.md (100%) rename {prompts => pkg/prompts/lib}/personas/support/support-finance-tracker.md (100%) rename {prompts => pkg/prompts/lib}/personas/support/support-infrastructure-maintainer.md (100%) rename {prompts => pkg/prompts/lib}/personas/support/support-legal-compliance-checker.md (100%) rename {prompts => pkg/prompts/lib}/personas/support/support-support-responder.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-accessibility-auditor.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-api-tester.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-evidence-collector.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-performance-benchmarker.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-reality-checker.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-test-results-analyzer.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-tool-evaluator.md (100%) rename {prompts => pkg/prompts/lib}/personas/testing/testing-workflow-optimizer.md (100%) rename {prompts => pkg/prompts/lib}/templates/api-consistency.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/bug-fix.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/code-review.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/dead-code.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/dependency-audit.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/doc-sync.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/feature-port.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/new-feature.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/prod-push-polish.md (100%) rename {prompts => pkg/prompts/lib}/templates/refactor.yaml (100%) rename {prompts => pkg/prompts/lib}/templates/test-gaps.yaml (100%) create mode 100644 pkg/prompts/prompts.go diff --git a/pkg/agentic/prep.go b/pkg/agentic/prep.go index a615c43..cfd9d4b 100644 --- a/pkg/agentic/prep.go +++ b/pkg/agentic/prep.go @@ -17,6 +17,7 @@ import ( "strings" "time" + "forge.lthn.ai/core/agent/pkg/prompts" coreio "forge.lthn.ai/core/go-io" coreerr "forge.lthn.ai/core/go-log" "github.com/modelcontextprotocol/go-sdk/mcp" @@ -213,8 +214,7 @@ func (s *PrepSubsystem) prepWorkspace(ctx context.Context, _ *mcp.CallToolReques // Copy persona if specified if input.Persona != "" { - personaPath := filepath.Join(s.codePath, "core", "agent", "prompts", "personas", input.Persona+".md") - if data, err := coreio.Local.Read(personaPath); err == nil { + if data, err := prompts.Persona(input.Persona); err == nil { coreio.Local.Write(filepath.Join(wsDir, "src", "PERSONA.md"), data) } } @@ -392,16 +392,10 @@ Do NOT push. Commit only — a reviewer will verify and push. // writePlanFromTemplate loads a YAML plan template, substitutes variables, // and writes PLAN.md into the workspace src/ directory. func (s *PrepSubsystem) writePlanFromTemplate(templateSlug string, variables map[string]string, task string, wsDir string) { - // Look for template in core/agent/prompts/templates/ - templatePath := filepath.Join(s.codePath, "core", "agent", "prompts", "templates", templateSlug+".yaml") - data, err := coreio.Local.Read(templatePath) + // Load template from embedded prompts package + data, err := prompts.Template(templateSlug) if err != nil { - // Try .yml extension - templatePath = filepath.Join(s.codePath, "core", "agent", "prompts", "templates", templateSlug+".yml") - data, err = coreio.Local.Read(templatePath) - if err != nil { - return // Template not found, skip silently - } + return // Template not found, skip silently } content := data diff --git a/prompts/personas/design/design-brand-guardian.md b/pkg/prompts/lib/personas/design/design-brand-guardian.md similarity index 100% rename from prompts/personas/design/design-brand-guardian.md rename to pkg/prompts/lib/personas/design/design-brand-guardian.md diff --git a/prompts/personas/design/design-image-prompt-engineer.md b/pkg/prompts/lib/personas/design/design-image-prompt-engineer.md similarity index 100% rename from prompts/personas/design/design-image-prompt-engineer.md rename to pkg/prompts/lib/personas/design/design-image-prompt-engineer.md diff --git a/prompts/personas/design/design-inclusive-visuals-specialist.md b/pkg/prompts/lib/personas/design/design-inclusive-visuals-specialist.md similarity index 100% rename from prompts/personas/design/design-inclusive-visuals-specialist.md rename to pkg/prompts/lib/personas/design/design-inclusive-visuals-specialist.md diff --git a/prompts/personas/design/design-ui-designer.md b/pkg/prompts/lib/personas/design/design-ui-designer.md similarity index 100% rename from prompts/personas/design/design-ui-designer.md rename to pkg/prompts/lib/personas/design/design-ui-designer.md diff --git a/prompts/personas/design/design-ux-architect.md b/pkg/prompts/lib/personas/design/design-ux-architect.md similarity index 100% rename from prompts/personas/design/design-ux-architect.md rename to pkg/prompts/lib/personas/design/design-ux-architect.md diff --git a/prompts/personas/design/design-ux-researcher.md b/pkg/prompts/lib/personas/design/design-ux-researcher.md similarity index 100% rename from prompts/personas/design/design-ux-researcher.md rename to pkg/prompts/lib/personas/design/design-ux-researcher.md diff --git a/prompts/personas/design/design-visual-storyteller.md b/pkg/prompts/lib/personas/design/design-visual-storyteller.md similarity index 100% rename from prompts/personas/design/design-visual-storyteller.md rename to pkg/prompts/lib/personas/design/design-visual-storyteller.md diff --git a/prompts/personas/design/design-whimsy-injector.md b/pkg/prompts/lib/personas/design/design-whimsy-injector.md similarity index 100% rename from prompts/personas/design/design-whimsy-injector.md rename to pkg/prompts/lib/personas/design/design-whimsy-injector.md diff --git a/prompts/personas/engineering/engineering-ai-engineer.md b/pkg/prompts/lib/personas/engineering/engineering-ai-engineer.md similarity index 100% rename from prompts/personas/engineering/engineering-ai-engineer.md rename to pkg/prompts/lib/personas/engineering/engineering-ai-engineer.md diff --git a/prompts/personas/engineering/engineering-autonomous-optimization-architect.md b/pkg/prompts/lib/personas/engineering/engineering-autonomous-optimization-architect.md similarity index 100% rename from prompts/personas/engineering/engineering-autonomous-optimization-architect.md rename to pkg/prompts/lib/personas/engineering/engineering-autonomous-optimization-architect.md diff --git a/prompts/personas/engineering/engineering-backend-architect.md b/pkg/prompts/lib/personas/engineering/engineering-backend-architect.md similarity index 100% rename from prompts/personas/engineering/engineering-backend-architect.md rename to pkg/prompts/lib/personas/engineering/engineering-backend-architect.md diff --git a/prompts/personas/engineering/engineering-data-engineer.md b/pkg/prompts/lib/personas/engineering/engineering-data-engineer.md similarity index 100% rename from prompts/personas/engineering/engineering-data-engineer.md rename to pkg/prompts/lib/personas/engineering/engineering-data-engineer.md diff --git a/prompts/personas/engineering/engineering-devops-automator.md b/pkg/prompts/lib/personas/engineering/engineering-devops-automator.md similarity index 100% rename from prompts/personas/engineering/engineering-devops-automator.md rename to pkg/prompts/lib/personas/engineering/engineering-devops-automator.md diff --git a/prompts/personas/engineering/engineering-frontend-developer.md b/pkg/prompts/lib/personas/engineering/engineering-frontend-developer.md similarity index 100% rename from prompts/personas/engineering/engineering-frontend-developer.md rename to pkg/prompts/lib/personas/engineering/engineering-frontend-developer.md diff --git a/prompts/personas/engineering/engineering-incident-response-commander.md b/pkg/prompts/lib/personas/engineering/engineering-incident-response-commander.md similarity index 100% rename from prompts/personas/engineering/engineering-incident-response-commander.md rename to pkg/prompts/lib/personas/engineering/engineering-incident-response-commander.md diff --git a/prompts/personas/engineering/engineering-rapid-prototyper.md b/pkg/prompts/lib/personas/engineering/engineering-rapid-prototyper.md similarity index 100% rename from prompts/personas/engineering/engineering-rapid-prototyper.md rename to pkg/prompts/lib/personas/engineering/engineering-rapid-prototyper.md diff --git a/prompts/personas/engineering/engineering-security-engineer.md b/pkg/prompts/lib/personas/engineering/engineering-security-engineer.md similarity index 100% rename from prompts/personas/engineering/engineering-security-engineer.md rename to pkg/prompts/lib/personas/engineering/engineering-security-engineer.md diff --git a/prompts/personas/engineering/engineering-senior-developer.md b/pkg/prompts/lib/personas/engineering/engineering-senior-developer.md similarity index 100% rename from prompts/personas/engineering/engineering-senior-developer.md rename to pkg/prompts/lib/personas/engineering/engineering-senior-developer.md diff --git a/prompts/personas/engineering/engineering-technical-writer.md b/pkg/prompts/lib/personas/engineering/engineering-technical-writer.md similarity index 100% rename from prompts/personas/engineering/engineering-technical-writer.md rename to pkg/prompts/lib/personas/engineering/engineering-technical-writer.md diff --git a/prompts/personas/examples/README.md b/pkg/prompts/lib/personas/examples/README.md similarity index 100% rename from prompts/personas/examples/README.md rename to pkg/prompts/lib/personas/examples/README.md diff --git a/prompts/personas/examples/nexus-spatial-discovery.md b/pkg/prompts/lib/personas/examples/nexus-spatial-discovery.md similarity index 100% rename from prompts/personas/examples/nexus-spatial-discovery.md rename to pkg/prompts/lib/personas/examples/nexus-spatial-discovery.md diff --git a/prompts/personas/examples/workflow-landing-page.md b/pkg/prompts/lib/personas/examples/workflow-landing-page.md similarity index 100% rename from prompts/personas/examples/workflow-landing-page.md rename to pkg/prompts/lib/personas/examples/workflow-landing-page.md diff --git a/prompts/personas/examples/workflow-startup-mvp.md b/pkg/prompts/lib/personas/examples/workflow-startup-mvp.md similarity index 100% rename from prompts/personas/examples/workflow-startup-mvp.md rename to pkg/prompts/lib/personas/examples/workflow-startup-mvp.md diff --git a/prompts/personas/examples/workflow-with-memory.md b/pkg/prompts/lib/personas/examples/workflow-with-memory.md similarity index 100% rename from prompts/personas/examples/workflow-with-memory.md rename to pkg/prompts/lib/personas/examples/workflow-with-memory.md diff --git a/prompts/personas/marketing/marketing-carousel-growth-engine.md b/pkg/prompts/lib/personas/marketing/marketing-carousel-growth-engine.md similarity index 100% rename from prompts/personas/marketing/marketing-carousel-growth-engine.md rename to pkg/prompts/lib/personas/marketing/marketing-carousel-growth-engine.md diff --git a/prompts/personas/marketing/marketing-content-creator.md b/pkg/prompts/lib/personas/marketing/marketing-content-creator.md similarity index 100% rename from prompts/personas/marketing/marketing-content-creator.md rename to pkg/prompts/lib/personas/marketing/marketing-content-creator.md diff --git a/prompts/personas/marketing/marketing-growth-hacker.md b/pkg/prompts/lib/personas/marketing/marketing-growth-hacker.md similarity index 100% rename from prompts/personas/marketing/marketing-growth-hacker.md rename to pkg/prompts/lib/personas/marketing/marketing-growth-hacker.md diff --git a/prompts/personas/marketing/marketing-instagram-curator.md b/pkg/prompts/lib/personas/marketing/marketing-instagram-curator.md similarity index 100% rename from prompts/personas/marketing/marketing-instagram-curator.md rename to pkg/prompts/lib/personas/marketing/marketing-instagram-curator.md diff --git a/prompts/personas/marketing/marketing-linkedin-content-creator.md b/pkg/prompts/lib/personas/marketing/marketing-linkedin-content-creator.md similarity index 100% rename from prompts/personas/marketing/marketing-linkedin-content-creator.md rename to pkg/prompts/lib/personas/marketing/marketing-linkedin-content-creator.md diff --git a/prompts/personas/marketing/marketing-reddit-community-builder.md b/pkg/prompts/lib/personas/marketing/marketing-reddit-community-builder.md similarity index 100% rename from prompts/personas/marketing/marketing-reddit-community-builder.md rename to pkg/prompts/lib/personas/marketing/marketing-reddit-community-builder.md diff --git a/prompts/personas/marketing/marketing-seo-specialist.md b/pkg/prompts/lib/personas/marketing/marketing-seo-specialist.md similarity index 100% rename from prompts/personas/marketing/marketing-seo-specialist.md rename to pkg/prompts/lib/personas/marketing/marketing-seo-specialist.md diff --git a/prompts/personas/marketing/marketing-social-media-strategist.md b/pkg/prompts/lib/personas/marketing/marketing-social-media-strategist.md similarity index 100% rename from prompts/personas/marketing/marketing-social-media-strategist.md rename to pkg/prompts/lib/personas/marketing/marketing-social-media-strategist.md diff --git a/prompts/personas/marketing/marketing-tiktok-strategist.md b/pkg/prompts/lib/personas/marketing/marketing-tiktok-strategist.md similarity index 100% rename from prompts/personas/marketing/marketing-tiktok-strategist.md rename to pkg/prompts/lib/personas/marketing/marketing-tiktok-strategist.md diff --git a/prompts/personas/marketing/marketing-twitter-engager.md b/pkg/prompts/lib/personas/marketing/marketing-twitter-engager.md similarity index 100% rename from prompts/personas/marketing/marketing-twitter-engager.md rename to pkg/prompts/lib/personas/marketing/marketing-twitter-engager.md diff --git a/prompts/personas/paid-media/paid-media-auditor.md b/pkg/prompts/lib/personas/paid-media/paid-media-auditor.md similarity index 100% rename from prompts/personas/paid-media/paid-media-auditor.md rename to pkg/prompts/lib/personas/paid-media/paid-media-auditor.md diff --git a/prompts/personas/paid-media/paid-media-creative-strategist.md b/pkg/prompts/lib/personas/paid-media/paid-media-creative-strategist.md similarity index 100% rename from prompts/personas/paid-media/paid-media-creative-strategist.md rename to pkg/prompts/lib/personas/paid-media/paid-media-creative-strategist.md diff --git a/prompts/personas/paid-media/paid-media-paid-social-strategist.md b/pkg/prompts/lib/personas/paid-media/paid-media-paid-social-strategist.md similarity index 100% rename from prompts/personas/paid-media/paid-media-paid-social-strategist.md rename to pkg/prompts/lib/personas/paid-media/paid-media-paid-social-strategist.md diff --git a/prompts/personas/paid-media/paid-media-ppc-strategist.md b/pkg/prompts/lib/personas/paid-media/paid-media-ppc-strategist.md similarity index 100% rename from prompts/personas/paid-media/paid-media-ppc-strategist.md rename to pkg/prompts/lib/personas/paid-media/paid-media-ppc-strategist.md diff --git a/prompts/personas/paid-media/paid-media-programmatic-buyer.md b/pkg/prompts/lib/personas/paid-media/paid-media-programmatic-buyer.md similarity index 100% rename from prompts/personas/paid-media/paid-media-programmatic-buyer.md rename to pkg/prompts/lib/personas/paid-media/paid-media-programmatic-buyer.md diff --git a/prompts/personas/paid-media/paid-media-search-query-analyst.md b/pkg/prompts/lib/personas/paid-media/paid-media-search-query-analyst.md similarity index 100% rename from prompts/personas/paid-media/paid-media-search-query-analyst.md rename to pkg/prompts/lib/personas/paid-media/paid-media-search-query-analyst.md diff --git a/prompts/personas/paid-media/paid-media-tracking-specialist.md b/pkg/prompts/lib/personas/paid-media/paid-media-tracking-specialist.md similarity index 100% rename from prompts/personas/paid-media/paid-media-tracking-specialist.md rename to pkg/prompts/lib/personas/paid-media/paid-media-tracking-specialist.md diff --git a/prompts/personas/product/product-behavioral-nudge-engine.md b/pkg/prompts/lib/personas/product/product-behavioral-nudge-engine.md similarity index 100% rename from prompts/personas/product/product-behavioral-nudge-engine.md rename to pkg/prompts/lib/personas/product/product-behavioral-nudge-engine.md diff --git a/prompts/personas/product/product-feedback-synthesizer.md b/pkg/prompts/lib/personas/product/product-feedback-synthesizer.md similarity index 100% rename from prompts/personas/product/product-feedback-synthesizer.md rename to pkg/prompts/lib/personas/product/product-feedback-synthesizer.md diff --git a/prompts/personas/product/product-sprint-prioritizer.md b/pkg/prompts/lib/personas/product/product-sprint-prioritizer.md similarity index 100% rename from prompts/personas/product/product-sprint-prioritizer.md rename to pkg/prompts/lib/personas/product/product-sprint-prioritizer.md diff --git a/prompts/personas/product/product-trend-researcher.md b/pkg/prompts/lib/personas/product/product-trend-researcher.md similarity index 100% rename from prompts/personas/product/product-trend-researcher.md rename to pkg/prompts/lib/personas/product/product-trend-researcher.md diff --git a/prompts/personas/project-management/project-management-experiment-tracker.md b/pkg/prompts/lib/personas/project-management/project-management-experiment-tracker.md similarity index 100% rename from prompts/personas/project-management/project-management-experiment-tracker.md rename to pkg/prompts/lib/personas/project-management/project-management-experiment-tracker.md diff --git a/prompts/personas/project-management/project-management-project-shepherd.md b/pkg/prompts/lib/personas/project-management/project-management-project-shepherd.md similarity index 100% rename from prompts/personas/project-management/project-management-project-shepherd.md rename to pkg/prompts/lib/personas/project-management/project-management-project-shepherd.md diff --git a/prompts/personas/project-management/project-management-studio-operations.md b/pkg/prompts/lib/personas/project-management/project-management-studio-operations.md similarity index 100% rename from prompts/personas/project-management/project-management-studio-operations.md rename to pkg/prompts/lib/personas/project-management/project-management-studio-operations.md diff --git a/prompts/personas/project-management/project-management-studio-producer.md b/pkg/prompts/lib/personas/project-management/project-management-studio-producer.md similarity index 100% rename from prompts/personas/project-management/project-management-studio-producer.md rename to pkg/prompts/lib/personas/project-management/project-management-studio-producer.md diff --git a/prompts/personas/project-management/project-manager-senior.md b/pkg/prompts/lib/personas/project-management/project-manager-senior.md similarity index 100% rename from prompts/personas/project-management/project-manager-senior.md rename to pkg/prompts/lib/personas/project-management/project-manager-senior.md diff --git a/prompts/personas/sales/sales-account-strategist.md b/pkg/prompts/lib/personas/sales/sales-account-strategist.md similarity index 100% rename from prompts/personas/sales/sales-account-strategist.md rename to pkg/prompts/lib/personas/sales/sales-account-strategist.md diff --git a/prompts/personas/sales/sales-coach.md b/pkg/prompts/lib/personas/sales/sales-coach.md similarity index 100% rename from prompts/personas/sales/sales-coach.md rename to pkg/prompts/lib/personas/sales/sales-coach.md diff --git a/prompts/personas/sales/sales-deal-strategist.md b/pkg/prompts/lib/personas/sales/sales-deal-strategist.md similarity index 100% rename from prompts/personas/sales/sales-deal-strategist.md rename to pkg/prompts/lib/personas/sales/sales-deal-strategist.md diff --git a/prompts/personas/sales/sales-discovery-coach.md b/pkg/prompts/lib/personas/sales/sales-discovery-coach.md similarity index 100% rename from prompts/personas/sales/sales-discovery-coach.md rename to pkg/prompts/lib/personas/sales/sales-discovery-coach.md diff --git a/prompts/personas/sales/sales-engineer.md b/pkg/prompts/lib/personas/sales/sales-engineer.md similarity index 100% rename from prompts/personas/sales/sales-engineer.md rename to pkg/prompts/lib/personas/sales/sales-engineer.md diff --git a/prompts/personas/sales/sales-outbound-strategist.md b/pkg/prompts/lib/personas/sales/sales-outbound-strategist.md similarity index 100% rename from prompts/personas/sales/sales-outbound-strategist.md rename to pkg/prompts/lib/personas/sales/sales-outbound-strategist.md diff --git a/prompts/personas/sales/sales-pipeline-analyst.md b/pkg/prompts/lib/personas/sales/sales-pipeline-analyst.md similarity index 100% rename from prompts/personas/sales/sales-pipeline-analyst.md rename to pkg/prompts/lib/personas/sales/sales-pipeline-analyst.md diff --git a/prompts/personas/sales/sales-proposal-strategist.md b/pkg/prompts/lib/personas/sales/sales-proposal-strategist.md similarity index 100% rename from prompts/personas/sales/sales-proposal-strategist.md rename to pkg/prompts/lib/personas/sales/sales-proposal-strategist.md diff --git a/prompts/personas/spatial-computing/macos-spatial-metal-engineer.md b/pkg/prompts/lib/personas/spatial-computing/macos-spatial-metal-engineer.md similarity index 100% rename from prompts/personas/spatial-computing/macos-spatial-metal-engineer.md rename to pkg/prompts/lib/personas/spatial-computing/macos-spatial-metal-engineer.md diff --git a/prompts/personas/spatial-computing/terminal-integration-specialist.md b/pkg/prompts/lib/personas/spatial-computing/terminal-integration-specialist.md similarity index 100% rename from prompts/personas/spatial-computing/terminal-integration-specialist.md rename to pkg/prompts/lib/personas/spatial-computing/terminal-integration-specialist.md diff --git a/prompts/personas/specialized/accounts-payable-agent.md b/pkg/prompts/lib/personas/specialized/accounts-payable-agent.md similarity index 100% rename from prompts/personas/specialized/accounts-payable-agent.md rename to pkg/prompts/lib/personas/specialized/accounts-payable-agent.md diff --git a/prompts/personas/specialized/agentic-identity-trust.md b/pkg/prompts/lib/personas/specialized/agentic-identity-trust.md similarity index 100% rename from prompts/personas/specialized/agentic-identity-trust.md rename to pkg/prompts/lib/personas/specialized/agentic-identity-trust.md diff --git a/prompts/personas/specialized/agents-orchestrator.md b/pkg/prompts/lib/personas/specialized/agents-orchestrator.md similarity index 100% rename from prompts/personas/specialized/agents-orchestrator.md rename to pkg/prompts/lib/personas/specialized/agents-orchestrator.md diff --git a/prompts/personas/specialized/blockchain-security-auditor.md b/pkg/prompts/lib/personas/specialized/blockchain-security-auditor.md similarity index 100% rename from prompts/personas/specialized/blockchain-security-auditor.md rename to pkg/prompts/lib/personas/specialized/blockchain-security-auditor.md diff --git a/prompts/personas/specialized/compliance-auditor.md b/pkg/prompts/lib/personas/specialized/compliance-auditor.md similarity index 100% rename from prompts/personas/specialized/compliance-auditor.md rename to pkg/prompts/lib/personas/specialized/compliance-auditor.md diff --git a/prompts/personas/specialized/identity-graph-operator.md b/pkg/prompts/lib/personas/specialized/identity-graph-operator.md similarity index 100% rename from prompts/personas/specialized/identity-graph-operator.md rename to pkg/prompts/lib/personas/specialized/identity-graph-operator.md diff --git a/prompts/personas/specialized/lsp-index-engineer.md b/pkg/prompts/lib/personas/specialized/lsp-index-engineer.md similarity index 100% rename from prompts/personas/specialized/lsp-index-engineer.md rename to pkg/prompts/lib/personas/specialized/lsp-index-engineer.md diff --git a/prompts/personas/specialized/specialized-cultural-intelligence-strategist.md b/pkg/prompts/lib/personas/specialized/specialized-cultural-intelligence-strategist.md similarity index 100% rename from prompts/personas/specialized/specialized-cultural-intelligence-strategist.md rename to pkg/prompts/lib/personas/specialized/specialized-cultural-intelligence-strategist.md diff --git a/prompts/personas/specialized/specialized-developer-advocate.md b/pkg/prompts/lib/personas/specialized/specialized-developer-advocate.md similarity index 100% rename from prompts/personas/specialized/specialized-developer-advocate.md rename to pkg/prompts/lib/personas/specialized/specialized-developer-advocate.md diff --git a/prompts/personas/specialized/specialized-model-qa.md b/pkg/prompts/lib/personas/specialized/specialized-model-qa.md similarity index 100% rename from prompts/personas/specialized/specialized-model-qa.md rename to pkg/prompts/lib/personas/specialized/specialized-model-qa.md diff --git a/prompts/personas/specialized/zk-steward.md b/pkg/prompts/lib/personas/specialized/zk-steward.md similarity index 100% rename from prompts/personas/specialized/zk-steward.md rename to pkg/prompts/lib/personas/specialized/zk-steward.md diff --git a/prompts/personas/strategy/EXECUTIVE-BRIEF.md b/pkg/prompts/lib/personas/strategy/EXECUTIVE-BRIEF.md similarity index 100% rename from prompts/personas/strategy/EXECUTIVE-BRIEF.md rename to pkg/prompts/lib/personas/strategy/EXECUTIVE-BRIEF.md diff --git a/prompts/personas/strategy/QUICKSTART.md b/pkg/prompts/lib/personas/strategy/QUICKSTART.md similarity index 100% rename from prompts/personas/strategy/QUICKSTART.md rename to pkg/prompts/lib/personas/strategy/QUICKSTART.md diff --git a/prompts/personas/strategy/coordination/agent-activation-prompts.md b/pkg/prompts/lib/personas/strategy/coordination/agent-activation-prompts.md similarity index 100% rename from prompts/personas/strategy/coordination/agent-activation-prompts.md rename to pkg/prompts/lib/personas/strategy/coordination/agent-activation-prompts.md diff --git a/prompts/personas/strategy/coordination/handoff-templates.md b/pkg/prompts/lib/personas/strategy/coordination/handoff-templates.md similarity index 100% rename from prompts/personas/strategy/coordination/handoff-templates.md rename to pkg/prompts/lib/personas/strategy/coordination/handoff-templates.md diff --git a/prompts/personas/strategy/nexus-strategy.md b/pkg/prompts/lib/personas/strategy/nexus-strategy.md similarity index 100% rename from prompts/personas/strategy/nexus-strategy.md rename to pkg/prompts/lib/personas/strategy/nexus-strategy.md diff --git a/prompts/personas/strategy/playbooks/phase-0-discovery.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-0-discovery.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-0-discovery.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-0-discovery.md diff --git a/prompts/personas/strategy/playbooks/phase-1-strategy.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-1-strategy.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-1-strategy.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-1-strategy.md diff --git a/prompts/personas/strategy/playbooks/phase-2-foundation.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-2-foundation.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-2-foundation.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-2-foundation.md diff --git a/prompts/personas/strategy/playbooks/phase-3-build.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-3-build.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-3-build.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-3-build.md diff --git a/prompts/personas/strategy/playbooks/phase-4-hardening.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-4-hardening.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-4-hardening.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-4-hardening.md diff --git a/prompts/personas/strategy/playbooks/phase-5-launch.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-5-launch.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-5-launch.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-5-launch.md diff --git a/prompts/personas/strategy/playbooks/phase-6-operate.md b/pkg/prompts/lib/personas/strategy/playbooks/phase-6-operate.md similarity index 100% rename from prompts/personas/strategy/playbooks/phase-6-operate.md rename to pkg/prompts/lib/personas/strategy/playbooks/phase-6-operate.md diff --git a/prompts/personas/strategy/runbooks/scenario-enterprise-feature.md b/pkg/prompts/lib/personas/strategy/runbooks/scenario-enterprise-feature.md similarity index 100% rename from prompts/personas/strategy/runbooks/scenario-enterprise-feature.md rename to pkg/prompts/lib/personas/strategy/runbooks/scenario-enterprise-feature.md diff --git a/prompts/personas/strategy/runbooks/scenario-incident-response.md b/pkg/prompts/lib/personas/strategy/runbooks/scenario-incident-response.md similarity index 100% rename from prompts/personas/strategy/runbooks/scenario-incident-response.md rename to pkg/prompts/lib/personas/strategy/runbooks/scenario-incident-response.md diff --git a/prompts/personas/strategy/runbooks/scenario-marketing-campaign.md b/pkg/prompts/lib/personas/strategy/runbooks/scenario-marketing-campaign.md similarity index 100% rename from prompts/personas/strategy/runbooks/scenario-marketing-campaign.md rename to pkg/prompts/lib/personas/strategy/runbooks/scenario-marketing-campaign.md diff --git a/prompts/personas/strategy/runbooks/scenario-startup-mvp.md b/pkg/prompts/lib/personas/strategy/runbooks/scenario-startup-mvp.md similarity index 100% rename from prompts/personas/strategy/runbooks/scenario-startup-mvp.md rename to pkg/prompts/lib/personas/strategy/runbooks/scenario-startup-mvp.md diff --git a/prompts/personas/support/support-analytics-reporter.md b/pkg/prompts/lib/personas/support/support-analytics-reporter.md similarity index 100% rename from prompts/personas/support/support-analytics-reporter.md rename to pkg/prompts/lib/personas/support/support-analytics-reporter.md diff --git a/prompts/personas/support/support-executive-summary-generator.md b/pkg/prompts/lib/personas/support/support-executive-summary-generator.md similarity index 100% rename from prompts/personas/support/support-executive-summary-generator.md rename to pkg/prompts/lib/personas/support/support-executive-summary-generator.md diff --git a/prompts/personas/support/support-finance-tracker.md b/pkg/prompts/lib/personas/support/support-finance-tracker.md similarity index 100% rename from prompts/personas/support/support-finance-tracker.md rename to pkg/prompts/lib/personas/support/support-finance-tracker.md diff --git a/prompts/personas/support/support-infrastructure-maintainer.md b/pkg/prompts/lib/personas/support/support-infrastructure-maintainer.md similarity index 100% rename from prompts/personas/support/support-infrastructure-maintainer.md rename to pkg/prompts/lib/personas/support/support-infrastructure-maintainer.md diff --git a/prompts/personas/support/support-legal-compliance-checker.md b/pkg/prompts/lib/personas/support/support-legal-compliance-checker.md similarity index 100% rename from prompts/personas/support/support-legal-compliance-checker.md rename to pkg/prompts/lib/personas/support/support-legal-compliance-checker.md diff --git a/prompts/personas/support/support-support-responder.md b/pkg/prompts/lib/personas/support/support-support-responder.md similarity index 100% rename from prompts/personas/support/support-support-responder.md rename to pkg/prompts/lib/personas/support/support-support-responder.md diff --git a/prompts/personas/testing/testing-accessibility-auditor.md b/pkg/prompts/lib/personas/testing/testing-accessibility-auditor.md similarity index 100% rename from prompts/personas/testing/testing-accessibility-auditor.md rename to pkg/prompts/lib/personas/testing/testing-accessibility-auditor.md diff --git a/prompts/personas/testing/testing-api-tester.md b/pkg/prompts/lib/personas/testing/testing-api-tester.md similarity index 100% rename from prompts/personas/testing/testing-api-tester.md rename to pkg/prompts/lib/personas/testing/testing-api-tester.md diff --git a/prompts/personas/testing/testing-evidence-collector.md b/pkg/prompts/lib/personas/testing/testing-evidence-collector.md similarity index 100% rename from prompts/personas/testing/testing-evidence-collector.md rename to pkg/prompts/lib/personas/testing/testing-evidence-collector.md diff --git a/prompts/personas/testing/testing-performance-benchmarker.md b/pkg/prompts/lib/personas/testing/testing-performance-benchmarker.md similarity index 100% rename from prompts/personas/testing/testing-performance-benchmarker.md rename to pkg/prompts/lib/personas/testing/testing-performance-benchmarker.md diff --git a/prompts/personas/testing/testing-reality-checker.md b/pkg/prompts/lib/personas/testing/testing-reality-checker.md similarity index 100% rename from prompts/personas/testing/testing-reality-checker.md rename to pkg/prompts/lib/personas/testing/testing-reality-checker.md diff --git a/prompts/personas/testing/testing-test-results-analyzer.md b/pkg/prompts/lib/personas/testing/testing-test-results-analyzer.md similarity index 100% rename from prompts/personas/testing/testing-test-results-analyzer.md rename to pkg/prompts/lib/personas/testing/testing-test-results-analyzer.md diff --git a/prompts/personas/testing/testing-tool-evaluator.md b/pkg/prompts/lib/personas/testing/testing-tool-evaluator.md similarity index 100% rename from prompts/personas/testing/testing-tool-evaluator.md rename to pkg/prompts/lib/personas/testing/testing-tool-evaluator.md diff --git a/prompts/personas/testing/testing-workflow-optimizer.md b/pkg/prompts/lib/personas/testing/testing-workflow-optimizer.md similarity index 100% rename from prompts/personas/testing/testing-workflow-optimizer.md rename to pkg/prompts/lib/personas/testing/testing-workflow-optimizer.md diff --git a/prompts/templates/api-consistency.yaml b/pkg/prompts/lib/templates/api-consistency.yaml similarity index 100% rename from prompts/templates/api-consistency.yaml rename to pkg/prompts/lib/templates/api-consistency.yaml diff --git a/prompts/templates/bug-fix.yaml b/pkg/prompts/lib/templates/bug-fix.yaml similarity index 100% rename from prompts/templates/bug-fix.yaml rename to pkg/prompts/lib/templates/bug-fix.yaml diff --git a/prompts/templates/code-review.yaml b/pkg/prompts/lib/templates/code-review.yaml similarity index 100% rename from prompts/templates/code-review.yaml rename to pkg/prompts/lib/templates/code-review.yaml diff --git a/prompts/templates/dead-code.yaml b/pkg/prompts/lib/templates/dead-code.yaml similarity index 100% rename from prompts/templates/dead-code.yaml rename to pkg/prompts/lib/templates/dead-code.yaml diff --git a/prompts/templates/dependency-audit.yaml b/pkg/prompts/lib/templates/dependency-audit.yaml similarity index 100% rename from prompts/templates/dependency-audit.yaml rename to pkg/prompts/lib/templates/dependency-audit.yaml diff --git a/prompts/templates/doc-sync.yaml b/pkg/prompts/lib/templates/doc-sync.yaml similarity index 100% rename from prompts/templates/doc-sync.yaml rename to pkg/prompts/lib/templates/doc-sync.yaml diff --git a/prompts/templates/feature-port.yaml b/pkg/prompts/lib/templates/feature-port.yaml similarity index 100% rename from prompts/templates/feature-port.yaml rename to pkg/prompts/lib/templates/feature-port.yaml diff --git a/prompts/templates/new-feature.yaml b/pkg/prompts/lib/templates/new-feature.yaml similarity index 100% rename from prompts/templates/new-feature.yaml rename to pkg/prompts/lib/templates/new-feature.yaml diff --git a/prompts/templates/prod-push-polish.md b/pkg/prompts/lib/templates/prod-push-polish.md similarity index 100% rename from prompts/templates/prod-push-polish.md rename to pkg/prompts/lib/templates/prod-push-polish.md diff --git a/prompts/templates/refactor.yaml b/pkg/prompts/lib/templates/refactor.yaml similarity index 100% rename from prompts/templates/refactor.yaml rename to pkg/prompts/lib/templates/refactor.yaml diff --git a/prompts/templates/test-gaps.yaml b/pkg/prompts/lib/templates/test-gaps.yaml similarity index 100% rename from prompts/templates/test-gaps.yaml rename to pkg/prompts/lib/templates/test-gaps.yaml diff --git a/pkg/prompts/prompts.go b/pkg/prompts/prompts.go new file mode 100644 index 0000000..3403adc --- /dev/null +++ b/pkg/prompts/prompts.go @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: EUPL-1.2 + +// Package prompts provides embedded prompt templates and personas for agent dispatch. +// Templates and personas are loaded from lib/ at compile time via go:embed. +// +// Usage: +// +// template, _ := prompts.Template("bug-fix") +// persona, _ := prompts.Persona("engineering/engineering-security-engineer") +// all := prompts.ListTemplates() +package prompts + +import ( + "embed" + "io/fs" + "path/filepath" + "strings" +) + +//go:embed lib/templates/*.yaml lib/templates/*.md +var templateFS embed.FS + +//go:embed lib/personas +var personaFS embed.FS + +// Template returns the content of a prompt template by slug. +// Slug examples: "bug-fix", "code-review", "security". +func Template(slug string) (string, error) { + // Try .yaml first, then .yml, then .md + for _, ext := range []string{".yaml", ".yml", ".md"} { + data, err := templateFS.ReadFile("lib/templates/" + slug + ext) + if err == nil { + return string(data), nil + } + } + return "", fs.ErrNotExist +} + +// Persona returns the content of a persona by path. +// Path examples: "engineering/engineering-security-engineer", +// "testing/testing-api-tester", "specialized/blockchain-security-auditor". +func Persona(path string) (string, error) { + data, err := personaFS.ReadFile("lib/personas/" + path + ".md") + if err != nil { + return "", err + } + return string(data), nil +} + +// ListTemplates returns all available template slugs. +func ListTemplates() []string { + entries, err := templateFS.ReadDir("lib/templates") + if err != nil { + return nil + } + var slugs []string + for _, e := range entries { + if e.IsDir() { + continue + } + name := e.Name() + ext := filepath.Ext(name) + slug := strings.TrimSuffix(name, ext) + slugs = append(slugs, slug) + } + return slugs +} + +// ListPersonas returns all available persona paths. +func ListPersonas() []string { + var paths []string + fs.WalkDir(personaFS, "lib/personas", func(path string, d fs.DirEntry, err error) error { + if err != nil || d.IsDir() { + return nil + } + if strings.HasSuffix(path, ".md") { + // Strip prefix and extension: lib/personas/engineering/foo.md → engineering/foo + rel := strings.TrimPrefix(path, "lib/personas/") + rel = strings.TrimSuffix(rel, ".md") + paths = append(paths, rel) + } + return nil + }) + return paths +} + +// TemplateFS returns the raw embedded filesystem for templates. +func TemplateFS() embed.FS { + return templateFS +} + +// PersonaFS returns the raw embedded filesystem for personas. +func PersonaFS() embed.FS { + return personaFS +}