jfl 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +313 -0
- package/clawdbot-skill/README.md +328 -0
- package/clawdbot-skill/SKILL.md +362 -0
- package/clawdbot-skill/index.ts +486 -0
- package/clawdbot-skill/package.json +28 -0
- package/clawdbot-skill/skill.json +28 -0
- package/dist/commands/agents.d.ts +5 -0
- package/dist/commands/agents.d.ts.map +1 -0
- package/dist/commands/agents.js +399 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/context-hub.d.ts +12 -0
- package/dist/commands/context-hub.d.ts.map +1 -0
- package/dist/commands/context-hub.js +642 -0
- package/dist/commands/context-hub.js.map +1 -0
- package/dist/commands/deploy.d.ts +5 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +370 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/feedback.d.ts +2 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +178 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/hud.d.ts +4 -0
- package/dist/commands/hud.d.ts.map +1 -0
- package/dist/commands/hud.js +262 -0
- package/dist/commands/hud.js.map +1 -0
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +553 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/login.d.ts +23 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +818 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/ralph.d.ts +9 -0
- package/dist/commands/ralph.d.ts.map +1 -0
- package/dist/commands/ralph.js +67 -0
- package/dist/commands/ralph.js.map +1 -0
- package/dist/commands/repair.d.ts +7 -0
- package/dist/commands/repair.d.ts.map +1 -0
- package/dist/commands/repair.js +283 -0
- package/dist/commands/repair.js.map +1 -0
- package/dist/commands/session-mgmt.d.ts +33 -0
- package/dist/commands/session-mgmt.d.ts.map +1 -0
- package/dist/commands/session-mgmt.js +404 -0
- package/dist/commands/session-mgmt.js.map +1 -0
- package/dist/commands/session.d.ts +2 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +639 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/skills.d.ts +31 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +314 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +127 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/synopsis.d.ts +10 -0
- package/dist/commands/synopsis.d.ts.map +1 -0
- package/dist/commands/synopsis.js +277 -0
- package/dist/commands/synopsis.js.map +1 -0
- package/dist/commands/update.d.ts +10 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +165 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/voice.d.ts +410 -0
- package/dist/commands/voice.d.ts.map +1 -0
- package/dist/commands/voice.js +4763 -0
- package/dist/commands/voice.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +512 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/context-hub-mcp.d.ts +11 -0
- package/dist/mcp/context-hub-mcp.d.ts.map +1 -0
- package/dist/mcp/context-hub-mcp.js +548 -0
- package/dist/mcp/context-hub-mcp.js.map +1 -0
- package/dist/telegram/voice.d.ts +146 -0
- package/dist/telegram/voice.d.ts.map +1 -0
- package/dist/telegram/voice.js +351 -0
- package/dist/telegram/voice.js.map +1 -0
- package/dist/types/skills.d.ts +44 -0
- package/dist/types/skills.d.ts.map +1 -0
- package/dist/types/skills.js +5 -0
- package/dist/types/skills.js.map +1 -0
- package/dist/ui/banner.d.ts +18 -0
- package/dist/ui/banner.d.ts.map +1 -0
- package/dist/ui/banner.js +323 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +8 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +52 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +72 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/theme.d.ts +82 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +142 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/utils/auth-guard.d.ts +66 -0
- package/dist/utils/auth-guard.d.ts.map +1 -0
- package/dist/utils/auth-guard.js +348 -0
- package/dist/utils/auth-guard.js.map +1 -0
- package/dist/utils/ensure-project.d.ts +11 -0
- package/dist/utils/ensure-project.d.ts.map +1 -0
- package/dist/utils/ensure-project.js +70 -0
- package/dist/utils/ensure-project.js.map +1 -0
- package/dist/utils/git.d.ts +73 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +219 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/github-auth.d.ts +54 -0
- package/dist/utils/github-auth.d.ts.map +1 -0
- package/dist/utils/github-auth.js +375 -0
- package/dist/utils/github-auth.js.map +1 -0
- package/dist/utils/github-repo.d.ts +30 -0
- package/dist/utils/github-repo.d.ts.map +1 -0
- package/dist/utils/github-repo.js +219 -0
- package/dist/utils/github-repo.js.map +1 -0
- package/dist/utils/platform-auth.d.ts +81 -0
- package/dist/utils/platform-auth.d.ts.map +1 -0
- package/dist/utils/platform-auth.js +191 -0
- package/dist/utils/platform-auth.js.map +1 -0
- package/dist/utils/project-config.d.ts +43 -0
- package/dist/utils/project-config.d.ts.map +1 -0
- package/dist/utils/project-config.js +97 -0
- package/dist/utils/project-config.js.map +1 -0
- package/dist/utils/skill-registry.d.ts +49 -0
- package/dist/utils/skill-registry.d.ts.map +1 -0
- package/dist/utils/skill-registry.js +192 -0
- package/dist/utils/skill-registry.js.map +1 -0
- package/dist/utils/wallet.d.ts +62 -0
- package/dist/utils/wallet.d.ts.map +1 -0
- package/dist/utils/wallet.js +252 -0
- package/dist/utils/wallet.js.map +1 -0
- package/dist/utils/x402-client.d.ts +86 -0
- package/dist/utils/x402-client.d.ts.map +1 -0
- package/dist/utils/x402-client.js +265 -0
- package/dist/utils/x402-client.js.map +1 -0
- package/package.json +76 -0
- package/scripts/postinstall.js +116 -0
- package/scripts/test-onboarding.sh +121 -0
- package/scripts/voice-start.sh +128 -0
- package/scripts/voice-stop.sh +33 -0
- package/template/.claude/settings.json +92 -0
- package/template/.claude/skills/agent-browser/SKILL.md +116 -0
- package/template/.claude/skills/brand-architect/SKILL.md +240 -0
- package/template/.claude/skills/brand-architect/config.yaml +137 -0
- package/template/.claude/skills/campaign-hud/config.yaml +112 -0
- package/template/.claude/skills/content-creator/SKILL.md +294 -0
- package/template/.claude/skills/debug/MULTI_AGENT.md +360 -0
- package/template/.claude/skills/debug/SKILL.md +549 -0
- package/template/.claude/skills/fly-deploy/SKILL.md +676 -0
- package/template/.claude/skills/founder-video/SKILL.md +467 -0
- package/template/.claude/skills/hud/SKILL.md +157 -0
- package/template/.claude/skills/ralph-tui/SKILL.md +210 -0
- package/template/.claude/skills/react-best-practices/AGENTS.md +2249 -0
- package/template/.claude/skills/react-best-practices/README.md +123 -0
- package/template/.claude/skills/react-best-practices/SKILL.md +125 -0
- package/template/.claude/skills/react-best-practices/metadata.json +15 -0
- package/template/.claude/skills/react-best-practices/rules/_sections.md +46 -0
- package/template/.claude/skills/react-best-practices/rules/_template.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/.claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/template/.claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/template/.claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/template/.claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/template/.claude/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/.claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/template/.claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/.claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/.claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/template/.claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/.claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/.claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/.claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/template/.claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/.claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/template/.claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/.claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/.claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/.claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/.claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/template/.claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/.claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/.claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/.claude/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/template/.claude/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/template/.claude/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/template/.claude/skills/remotion-best-practices/SKILL.md +43 -0
- package/template/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
- package/template/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/template/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
- package/template/.claude/skills/remotion-best-practices/rules/audio.md +172 -0
- package/template/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/template/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/template/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
- package/template/.claude/skills/remotion-best-practices/rules/compositions.md +146 -0
- package/template/.claude/skills/remotion-best-practices/rules/display-captions.md +126 -0
- package/template/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/template/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/template/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/template/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/template/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/template/.claude/skills/remotion-best-practices/rules/gifs.md +138 -0
- package/template/.claude/skills/remotion-best-practices/rules/images.md +130 -0
- package/template/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
- package/template/.claude/skills/remotion-best-practices/rules/lottie.md +68 -0
- package/template/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
- package/template/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/template/.claude/skills/remotion-best-practices/rules/sequencing.md +106 -0
- package/template/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/template/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/template/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
- package/template/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
- package/template/.claude/skills/remotion-best-practices/rules/transitions.md +122 -0
- package/template/.claude/skills/remotion-best-practices/rules/trimming.md +53 -0
- package/template/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
- package/template/.claude/skills/search/SKILL.md +220 -0
- package/template/.claude/skills/spec/SKILL.md +377 -0
- package/template/.claude/skills/startup/SKILL.md +310 -0
- package/template/.claude/skills/web-architect/SKILL.md +309 -0
- package/template/.claude/skills/x-algorithm/SKILL.md +305 -0
- package/template/.jfl/config.json +8 -0
- package/template/.mcp.json +11 -0
- package/template/CLAUDE.md +960 -0
- package/template/content/.gitkeep +0 -0
- package/template/context-hub +3 -0
- package/template/knowledge/BRAND_BRIEF.md +124 -0
- package/template/knowledge/BRAND_DECISIONS.md +168 -0
- package/template/knowledge/NARRATIVE.md +114 -0
- package/template/knowledge/ROADMAP.md +128 -0
- package/template/knowledge/THESIS.md +108 -0
- package/template/knowledge/VISION.md +74 -0
- package/template/knowledge/VOICE_AND_TONE.md +146 -0
- package/template/previews/.gitkeep +0 -0
- package/template/scripts/session/auto-commit.sh +245 -0
- package/template/scripts/session/auto-merge.sh +325 -0
- package/template/scripts/session/jfl-doctor.sh +587 -0
- package/template/scripts/session/session-end.sh +194 -0
- package/template/scripts/session/session-init.sh +163 -0
- package/template/scripts/session/session-sync.sh +167 -0
- package/template/scripts/session/test-context-preservation.sh +160 -0
- package/template/skills/agent-browser/SKILL.md +116 -0
- package/template/skills/brand-architect/SKILL.md +240 -0
- package/template/skills/brand-architect/config.yaml +137 -0
- package/template/skills/campaign-hud/config.yaml +112 -0
- package/template/skills/content-creator/SKILL.md +294 -0
- package/template/skills/debug/MULTI_AGENT.md +360 -0
- package/template/skills/debug/SKILL.md +549 -0
- package/template/skills/fly-deploy/SKILL.md +676 -0
- package/template/skills/founder-video/SKILL.md +467 -0
- package/template/skills/hud/SKILL.md +204 -0
- package/template/skills/ralph-tui/SKILL.md +210 -0
- package/template/skills/react-best-practices/AGENTS.md +2249 -0
- package/template/skills/react-best-practices/README.md +123 -0
- package/template/skills/react-best-practices/SKILL.md +125 -0
- package/template/skills/react-best-practices/metadata.json +15 -0
- package/template/skills/react-best-practices/rules/_sections.md +46 -0
- package/template/skills/react-best-practices/rules/_template.md +28 -0
- package/template/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/template/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/template/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/template/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/template/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/template/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/template/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/template/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/template/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/template/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/template/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/template/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/template/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/template/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/template/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/template/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/template/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/template/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/template/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/template/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/template/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/template/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/template/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/template/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/template/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/template/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/template/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/template/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/template/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/template/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/template/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/template/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/template/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/template/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/template/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/template/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/template/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/template/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/template/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/template/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/template/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/template/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/template/skills/react-best-practices/rules/server-cache-react.md +26 -0
- package/template/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
- package/template/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/template/skills/remotion-best-practices/SKILL.md +43 -0
- package/template/skills/remotion-best-practices/rules/3d.md +86 -0
- package/template/skills/remotion-best-practices/rules/animations.md +29 -0
- package/template/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/template/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/template/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/template/skills/remotion-best-practices/rules/assets.md +78 -0
- package/template/skills/remotion-best-practices/rules/audio.md +172 -0
- package/template/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/template/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/template/skills/remotion-best-practices/rules/charts.md +58 -0
- package/template/skills/remotion-best-practices/rules/compositions.md +146 -0
- package/template/skills/remotion-best-practices/rules/display-captions.md +126 -0
- package/template/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/template/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/template/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/template/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/template/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/template/skills/remotion-best-practices/rules/gifs.md +138 -0
- package/template/skills/remotion-best-practices/rules/images.md +130 -0
- package/template/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
- package/template/skills/remotion-best-practices/rules/lottie.md +68 -0
- package/template/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
- package/template/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/template/skills/remotion-best-practices/rules/sequencing.md +106 -0
- package/template/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/template/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/template/skills/remotion-best-practices/rules/timing.md +179 -0
- package/template/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
- package/template/skills/remotion-best-practices/rules/transitions.md +122 -0
- package/template/skills/remotion-best-practices/rules/trimming.md +53 -0
- package/template/skills/remotion-best-practices/rules/videos.md +171 -0
- package/template/skills/search/SKILL.md +220 -0
- package/template/skills/spec/SKILL.md +377 -0
- package/template/skills/startup/SKILL.md +310 -0
- package/template/skills/web-architect/SKILL.md +309 -0
- package/template/skills/x-algorithm/SKILL.md +305 -0
- package/template/suggestions/.gitkeep +0 -0
- package/template/templates/QUICKSTART_SKILL_TO_PRODUCT.md +242 -0
- package/template/templates/brand/BRAND_BRIEF.md +124 -0
- package/template/templates/brand/BRAND_DECISIONS.md +168 -0
- package/template/templates/brand/BRAND_GUIDELINES.md +251 -0
- package/template/templates/brand/VOICE_AND_TONE.md +146 -0
- package/template/templates/brand/global.css +240 -0
- package/template/templates/collaboration/CONTRIBUTOR.md +74 -0
- package/template/templates/collaboration/CRM.md +97 -0
- package/template/templates/collaboration/TASKS.md +83 -0
- package/template/templates/strategic/NARRATIVE.md +114 -0
- package/template/templates/strategic/ROADMAP.md +128 -0
- package/template/templates/strategic/THESIS.md +108 -0
- package/template/templates/strategic/VISION.md +74 -0
|
@@ -0,0 +1,960 @@
|
|
|
1
|
+
# JFL - Claude Instructions
|
|
2
|
+
|
|
3
|
+
Your context layer. Any project. Any AI.
|
|
4
|
+
|
|
5
|
+
## Project Identity
|
|
6
|
+
|
|
7
|
+
**Get project name from (in order):**
|
|
8
|
+
1. `.jfl/config.json` → `name` field
|
|
9
|
+
2. `knowledge/VISION.md` → first heading
|
|
10
|
+
3. Directory name
|
|
11
|
+
|
|
12
|
+
Use this name in status displays, greetings, and when referring to the project.
|
|
13
|
+
|
|
14
|
+
## Philosophy
|
|
15
|
+
|
|
16
|
+
**Vision emerges from doing, not declaring.**
|
|
17
|
+
|
|
18
|
+
Don't make users fill out forms before they can build. Let them start immediately. Capture context INTO the knowledge docs as you work together - the docs become a record of decisions, not a gate to getting started.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## CRITICAL: Session Sync (MUST READ)
|
|
23
|
+
|
|
24
|
+
**Context loss is unacceptable.** Before starting ANY work, verify repos are synced.
|
|
25
|
+
|
|
26
|
+
### At Session Start - ALWAYS Do (BEFORE RESPONDING TO USER):
|
|
27
|
+
|
|
28
|
+
**Complete ALL steps before saying anything to the user.**
|
|
29
|
+
|
|
30
|
+
**1. CD to worktree** (from hook output)
|
|
31
|
+
|
|
32
|
+
**2. Run session sync:**
|
|
33
|
+
```bash
|
|
34
|
+
./scripts/session/session-sync.sh
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**3. Run doctor check:**
|
|
38
|
+
```bash
|
|
39
|
+
./scripts/session/jfl-doctor.sh
|
|
40
|
+
```
|
|
41
|
+
Note any warnings (orphaned worktrees, unmerged sessions, memory not initialized).
|
|
42
|
+
|
|
43
|
+
**4. Get unified context via MCP (REQUIRED):**
|
|
44
|
+
```
|
|
45
|
+
Call: mcp__jfl-context__context_get
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
This single call returns:
|
|
49
|
+
- Recent journal entries (what happened across sessions)
|
|
50
|
+
- Knowledge docs (vision, roadmap, narrative, thesis)
|
|
51
|
+
- Code file headers (@purpose tags)
|
|
52
|
+
|
|
53
|
+
**DO NOT read individual markdown files.** The context MCP tool aggregates everything. This is why we built Context Hub.
|
|
54
|
+
|
|
55
|
+
**5. Show recent journal entries:**
|
|
56
|
+
```bash
|
|
57
|
+
cat .jfl/journal/*.jsonl 2>/dev/null | tail -10
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**6. Run /hud to show project dashboard:**
|
|
61
|
+
```
|
|
62
|
+
Invoke: /hud skill
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This displays the full status, pipeline, tasks, and guides next action.
|
|
66
|
+
|
|
67
|
+
**ONLY AFTER completing all 6 steps**, respond to the user with the HUD output.
|
|
68
|
+
|
|
69
|
+
If you need to search for something specific later:
|
|
70
|
+
```
|
|
71
|
+
Call: mcp__jfl-context__context_search with query="your search"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### CRITICAL: CD to Worktree
|
|
75
|
+
|
|
76
|
+
**After SessionStart hook runs, you MUST cd to the worktree.**
|
|
77
|
+
|
|
78
|
+
The hook creates a worktree and outputs:
|
|
79
|
+
```
|
|
80
|
+
═══════════════════════════════════════════════════════════
|
|
81
|
+
CLAUDE: You MUST run: cd /path/to/worktree
|
|
82
|
+
═══════════════════════════════════════════════════════════
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**YOU MUST RUN THAT CD COMMAND.** If you don't, you'll work on main branch and break multi-session isolation.
|
|
86
|
+
|
|
87
|
+
If you missed the output, find the path:
|
|
88
|
+
```bash
|
|
89
|
+
cat .jfl/current-worktree.txt
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Then cd to it:
|
|
93
|
+
```bash
|
|
94
|
+
cd $(cat .jfl/current-worktree.txt)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Verify you're in the worktree:**
|
|
98
|
+
```bash
|
|
99
|
+
pwd && git branch --show-current
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Should show `/path/worktrees/session-*` and branch `session-*`, NOT `main`.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
This syncs:
|
|
107
|
+
- jfl-gtm (this repo)
|
|
108
|
+
- jfl-platform (product symlink target)
|
|
109
|
+
- All submodules
|
|
110
|
+
|
|
111
|
+
### Why This Matters
|
|
112
|
+
|
|
113
|
+
The `product/` directory is a **symlink** to `../jfl-platform`. If jfl-platform gets out of sync with GitHub:
|
|
114
|
+
- Files appear "deleted" when they exist on GitHub
|
|
115
|
+
- Work done in previous sessions is invisible
|
|
116
|
+
- User loses trust in the system
|
|
117
|
+
|
|
118
|
+
**This has happened multiple times. Do not skip the sync.**
|
|
119
|
+
|
|
120
|
+
### Verify Context is Intact
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
./scripts/session/test-context-preservation.sh
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
This checks:
|
|
127
|
+
- Critical knowledge files exist (VISION.md, BRAND_DECISIONS.md, etc.)
|
|
128
|
+
- Product specs exist (PLATFORM_SPEC.md, TEMPLATE_SPEC.md, CONTEXT_GRAPH_SPEC.md)
|
|
129
|
+
- Git repos are in sync with remotes
|
|
130
|
+
- No uncommitted changes in knowledge/
|
|
131
|
+
|
|
132
|
+
**If tests fail, do not proceed until fixed.**
|
|
133
|
+
|
|
134
|
+
### Auto-Push on Session End
|
|
135
|
+
|
|
136
|
+
Hooks in `.claude/settings.json` automatically:
|
|
137
|
+
- Commit changes on Stop/PreCompact
|
|
138
|
+
- Push to origin
|
|
139
|
+
|
|
140
|
+
### Continuous Auto-Commit (RECOMMENDED)
|
|
141
|
+
|
|
142
|
+
**Problem:** Stop/PreCompact hooks only run if session ends cleanly. If session crashes, terminal closes, or you switch away → files can be lost.
|
|
143
|
+
|
|
144
|
+
**Solution:** Run continuous auto-commit in background:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# In a separate terminal, run:
|
|
148
|
+
./scripts/session/auto-commit.sh start
|
|
149
|
+
|
|
150
|
+
# Or with custom interval (default 120s):
|
|
151
|
+
./scripts/session/auto-commit.sh start 60
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
This commits every 2 minutes to:
|
|
155
|
+
- knowledge/
|
|
156
|
+
- previews/
|
|
157
|
+
- content/
|
|
158
|
+
- suggestions/
|
|
159
|
+
- CLAUDE.md
|
|
160
|
+
- .jfl/
|
|
161
|
+
|
|
162
|
+
**Start this at every session.** It's the only way to guarantee no work is lost.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## CRITICAL: Journal Protocol (NON-NEGOTIABLE)
|
|
167
|
+
|
|
168
|
+
**⚠️ THIS IS MANDATORY. NOT OPTIONAL. NOT SKIPPABLE.**
|
|
169
|
+
|
|
170
|
+
You MUST write journal entries. The Stop hook will block session end if no journal entry exists.
|
|
171
|
+
|
|
172
|
+
**Write DETAILED journal entries as you work. Not titles — actual content.**
|
|
173
|
+
|
|
174
|
+
The journal is the handoff document between sessions and between people. When someone asks "what did Hath work on?", the journal should answer with specifics, not vague titles.
|
|
175
|
+
|
|
176
|
+
### Enforcement
|
|
177
|
+
|
|
178
|
+
Hooks enforce this automatically:
|
|
179
|
+
- **Stop hook** → Blocks session end if no journal entry for this session
|
|
180
|
+
- **PreCompact hook** → Checks for journal entry before context compaction
|
|
181
|
+
- **PostToolUse (Write/Edit)** → Checks for @purpose header on code files
|
|
182
|
+
|
|
183
|
+
If you see "STOP - JOURNAL ENTRY REQUIRED", you MUST write a journal entry before proceeding.
|
|
184
|
+
|
|
185
|
+
### The Problem We're Solving
|
|
186
|
+
|
|
187
|
+
BAD entry (useless):
|
|
188
|
+
```json
|
|
189
|
+
{"title": "Session management improvements", "summary": "Applied Takopi patterns"}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
GOOD entry (useful):
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"title": "Session management with runner infrastructure",
|
|
196
|
+
"summary": "Built database tables, service layer, and API for managing AI sessions",
|
|
197
|
+
"detail": "Created runner_sessions, session_events, session_costs tables. RunnerService class with create/suspend/resume/destroy methods. /api/sessions endpoints for CRUD. Dashboard UI with polling. Note: simulateAgentStartup() is a stub - needs real Claude integration.",
|
|
198
|
+
"files": ["product/src/lib/db/schema.ts", "product/src/lib/runner-service.ts", "product/src/app/api/sessions/route.ts"],
|
|
199
|
+
"incomplete": ["simulateAgentStartup is stubbed", "cost tracking not connected to Stripe"],
|
|
200
|
+
"next": "Connect to Claude API for real agent execution"
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Per-Session Journal Files
|
|
205
|
+
|
|
206
|
+
Each session writes to its own file to avoid merge conflicts:
|
|
207
|
+
```
|
|
208
|
+
.jfl/journal/<session-id>.jsonl
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
The session ID comes from your git branch name (e.g., `session-goose-20260125-0240-bea0be`).
|
|
212
|
+
|
|
213
|
+
### When to Write (MANDATORY TRIGGERS)
|
|
214
|
+
|
|
215
|
+
Write a journal entry IMMEDIATELY when ANY of these happen:
|
|
216
|
+
|
|
217
|
+
| Event | Type | You MUST capture |
|
|
218
|
+
|-------|------|------------------|
|
|
219
|
+
| **Feature completed** | `feature` | What was built, files created, what's stubbed, next steps |
|
|
220
|
+
| **Decision made** | `decision` | Options considered, why this choice, decision slug |
|
|
221
|
+
| **Bug fixed** | `fix` | Root cause, the fix, what you learned |
|
|
222
|
+
| **Something learned** | `discovery` | The insight, how it changes approach |
|
|
223
|
+
| **Milestone reached** | `milestone` | Everything in this milestone, incomplete items |
|
|
224
|
+
| **Session ending** | `session-end` | Summary of session, handoff for next person |
|
|
225
|
+
|
|
226
|
+
**Do not wait until session end to write entries.** Write them AS events happen. Multiple entries per session is normal and expected.
|
|
227
|
+
|
|
228
|
+
### Real-Time Capture Triggers (ENFORCE THESE)
|
|
229
|
+
|
|
230
|
+
**After you do ANY of these, IMMEDIATELY write a journal entry:**
|
|
231
|
+
|
|
232
|
+
1. **After git commit** → Journal entry describing what was committed
|
|
233
|
+
2. **After TaskUpdate to completed** → Journal entry for that task
|
|
234
|
+
3. **After user says "done", "looks good", "ship it", "approved"** → Journal entry capturing what was approved
|
|
235
|
+
4. **After making a choice between options** → Decision journal entry
|
|
236
|
+
5. **After fixing an error/bug** → Fix journal entry with root cause
|
|
237
|
+
6. **After writing a new file** → Journal entry if it's significant (not just a small helper)
|
|
238
|
+
7. **After completing a multi-step task** → Feature/milestone journal entry
|
|
239
|
+
|
|
240
|
+
**Pattern to follow:**
|
|
241
|
+
```
|
|
242
|
+
1. Do the work
|
|
243
|
+
2. Commit (if code)
|
|
244
|
+
3. Write journal entry ← DON'T SKIP THIS
|
|
245
|
+
4. Continue to next task
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**If you catch yourself about to move to the next task without journaling, STOP and write the entry first.**
|
|
249
|
+
|
|
250
|
+
The session-end hook is a BACKSTOP, not the primary enforcement. Real-time capture is mandatory.
|
|
251
|
+
|
|
252
|
+
### Entry Format
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
{
|
|
256
|
+
"v": 1,
|
|
257
|
+
"ts": "2026-01-25T10:30:00.000Z",
|
|
258
|
+
"session": "session-goose-20260125-xxxx",
|
|
259
|
+
"type": "feature|fix|decision|milestone|spec|discovery",
|
|
260
|
+
"status": "complete|incomplete|blocked",
|
|
261
|
+
"title": "Short title (but not TOO short)",
|
|
262
|
+
"summary": "2-3 sentence summary of what this actually is",
|
|
263
|
+
"detail": "Full description. What was built? What files? What's stubbed? What's next?",
|
|
264
|
+
"files": ["file1.ts", "file2.ts"],
|
|
265
|
+
"decision": "decision-slug-for-linking",
|
|
266
|
+
"incomplete": ["list of things not finished"],
|
|
267
|
+
"next": "what should happen next",
|
|
268
|
+
"learned": ["key learnings from this work"]
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Required fields:** v, ts, session, type, title, summary
|
|
273
|
+
**Strongly recommended:** detail, files
|
|
274
|
+
|
|
275
|
+
### How to Write Entries
|
|
276
|
+
|
|
277
|
+
**Direct file append** (no CLI dependency):
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
# Get session and file path
|
|
281
|
+
SESSION=$(git branch --show-current)
|
|
282
|
+
JOURNAL_FILE=".jfl/journal/${SESSION}.jsonl"
|
|
283
|
+
mkdir -p .jfl/journal
|
|
284
|
+
|
|
285
|
+
# Append entry
|
|
286
|
+
cat >> "$JOURNAL_FILE" << 'ENTRY'
|
|
287
|
+
{"v":1,"ts":"2026-01-25T10:30:00.000Z","session":"SESSION_ID","type":"feature","status":"complete","title":"...","summary":"...","detail":"...","files":["..."]}
|
|
288
|
+
ENTRY
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Or just use the **Write tool** to append to the file directly. The format is one JSON object per line.
|
|
292
|
+
|
|
293
|
+
### What Makes a GOOD Entry
|
|
294
|
+
|
|
295
|
+
1. **Someone reading it can understand what exists** — not just that you worked on something
|
|
296
|
+
2. **Files are listed** — so they can find the code
|
|
297
|
+
3. **Incomplete items are noted** — so they know what's stubbed
|
|
298
|
+
4. **Next steps are clear** — so they can continue
|
|
299
|
+
|
|
300
|
+
### File Headers (MANDATORY FOR CODE FILES)
|
|
301
|
+
|
|
302
|
+
Every `.ts`, `.tsx`, `.js`, `.jsx` file MUST have a header with at minimum `@purpose`:
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
/**
|
|
306
|
+
* Component/Module Name
|
|
307
|
+
*
|
|
308
|
+
* Brief description of what this does.
|
|
309
|
+
*
|
|
310
|
+
* @purpose One-line description of file's purpose
|
|
311
|
+
* @spec Optional: link to spec (e.g., PLATFORM_SPEC.md#sessions)
|
|
312
|
+
* @decision Optional: decision slug (e.g., journal/2026-01.md#per-session)
|
|
313
|
+
*/
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The PostToolUse hook will warn you if you write/edit a code file without `@purpose`. Add it immediately.
|
|
317
|
+
|
|
318
|
+
This enables:
|
|
319
|
+
- Synopsis to extract context from files
|
|
320
|
+
- Codebase understanding without reading full files
|
|
321
|
+
- Decision traceability
|
|
322
|
+
|
|
323
|
+
### Reading the Journal
|
|
324
|
+
|
|
325
|
+
All session files are in `.jfl/journal/`. To see recent entries across all sessions:
|
|
326
|
+
```bash
|
|
327
|
+
cat .jfl/journal/*.jsonl | sort -t'"' -k4 | tail -20
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
Or read a specific session's journal:
|
|
331
|
+
```bash
|
|
332
|
+
cat .jfl/journal/session-goose-20260125-xxxx.jsonl
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Integration with Memory System
|
|
336
|
+
|
|
337
|
+
The memory pipeline indexes `.jfl/journal/` automatically. Entries become searchable via:
|
|
338
|
+
- Memory semantic search
|
|
339
|
+
- PageIndex tree queries ("when did we decide X?")
|
|
340
|
+
- HUD recent work display
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## CRITICAL: Synopsis Command (What Happened?)
|
|
345
|
+
|
|
346
|
+
**When anyone asks "what happened?" use synopsis:**
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
cd product/packages/memory && node dist/journal/cli.js synopsis [hours] [author]
|
|
350
|
+
|
|
351
|
+
# Examples:
|
|
352
|
+
node dist/journal/cli.js synopsis 24 # Last 24 hours
|
|
353
|
+
node dist/journal/cli.js synopsis 24 hathbanger # Specific author
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Aggregates journal entries, git commits, file headers, and time audit with category breakdown.
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## CRITICAL: Immediate Decision Capture
|
|
361
|
+
|
|
362
|
+
**When a decision is made, update the relevant doc AND journal IMMEDIATELY.**
|
|
363
|
+
|
|
364
|
+
### Flow
|
|
365
|
+
|
|
366
|
+
1. Decision made in conversation
|
|
367
|
+
2. Update the relevant doc:
|
|
368
|
+
- Naming/brand → `knowledge/BRAND_DECISIONS.md`
|
|
369
|
+
- Product direction → `product/SPEC.md`
|
|
370
|
+
- Architecture → relevant `*_SPEC.md`
|
|
371
|
+
3. Write journal entry with full context (options considered, why this choice)
|
|
372
|
+
4. Continue conversation
|
|
373
|
+
|
|
374
|
+
### Example
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
User: "Let's go with Option A for the pricing"
|
|
378
|
+
|
|
379
|
+
Claude: *updates knowledge/PRICING.md with Option A details*
|
|
380
|
+
*appends to .jfl/journal/<session>.jsonl:*
|
|
381
|
+
{
|
|
382
|
+
"type": "decision",
|
|
383
|
+
"title": "Pricing model: Option A (usage-based)",
|
|
384
|
+
"summary": "Chose usage-based pricing over flat rate",
|
|
385
|
+
"detail": "Options considered: A) $5/day usage-based, B) $49/mo flat, C) freemium. Chose A because: aligns with x402 micropayments, lower barrier to start, scales with value delivered. Rejected B because fixed cost feels like commitment before value proven.",
|
|
386
|
+
"decision": "pricing-model",
|
|
387
|
+
"files": ["knowledge/PRICING.md"]
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
"Done — updated PRICING.md. Ready to implement?"
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Why Detail Matters
|
|
394
|
+
|
|
395
|
+
- Next session, someone asks "why usage-based?" → journal has the answer
|
|
396
|
+
- You can trace back through decision history
|
|
397
|
+
- Avoids re-debating settled decisions
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## CRITICAL: CRM is Google Sheets (NOT a markdown file)
|
|
402
|
+
|
|
403
|
+
**NEVER read a CRM.md file. It doesn't exist. The CRM is Google Sheets accessed via CLI.**
|
|
404
|
+
|
|
405
|
+
### CRM Commands
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
./crm # Dashboard with insights
|
|
409
|
+
./crm list # List all deals
|
|
410
|
+
./crm prep <name> # Full context for a contact (use before calls)
|
|
411
|
+
./crm stale # Deals with no activity in 5+ days
|
|
412
|
+
./crm priority # High priority deals
|
|
413
|
+
./crm touch <name> # Log an activity
|
|
414
|
+
./crm update <name> <field> <value> # Update a field
|
|
415
|
+
./crm add contact "Name" "Company" # Add new contact
|
|
416
|
+
./crm add deal "Name" "Contact" "Pipeline" # Add deal
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
### When to Use
|
|
420
|
+
|
|
421
|
+
- **Before any outreach:** `./crm prep [name]` to get full context
|
|
422
|
+
- **After a call/meeting:** `./crm touch [name]` to log it
|
|
423
|
+
- **Checking pipeline:** `./crm list` or `./crm stale`
|
|
424
|
+
- **HUD pulls from CRM:** The `/hud` skill uses `./crm list` to show pipeline
|
|
425
|
+
|
|
426
|
+
**DO NOT:**
|
|
427
|
+
- Read `knowledge/CRM.md` (it doesn't exist)
|
|
428
|
+
- Try to grep for CRM data in markdown files
|
|
429
|
+
- Store contact info in suggestions files
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## Core Architecture Principle
|
|
434
|
+
|
|
435
|
+
**A GTM workspace should NEVER house product code.**
|
|
436
|
+
|
|
437
|
+
JFL creates GTM workspaces - context layers for building and launching. The actual product code always lives in its own separate repo. Even if you're a founder building everything, the structure is:
|
|
438
|
+
|
|
439
|
+
```
|
|
440
|
+
my-project-gtm/ ← GTM workspace (this repo)
|
|
441
|
+
├── product/ ← SUBMODULE → your-product-repo
|
|
442
|
+
├── knowledge/ ← Strategy, vision, narrative
|
|
443
|
+
├── content/ ← Marketing content
|
|
444
|
+
├── suggestions/ ← Contributor work
|
|
445
|
+
├── skills/ ← JFL skills (updated via jfl update)
|
|
446
|
+
└── CLAUDE.md ← Instructions (updated via jfl update)
|
|
447
|
+
|
|
448
|
+
your-product-repo/ ← SEPARATE REPO (all code lives here)
|
|
449
|
+
├── src/
|
|
450
|
+
├── cli/
|
|
451
|
+
├── platform/
|
|
452
|
+
└── ...
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
**Why?**
|
|
456
|
+
- Clean separation of concerns
|
|
457
|
+
- Product can be worked on independently
|
|
458
|
+
- GTM context doesn't pollute product repo
|
|
459
|
+
- Multiple GTMs can reference same product
|
|
460
|
+
- `jfl update` updates GTM toolkit without touching product
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Understanding the Project Setup
|
|
465
|
+
|
|
466
|
+
**Before doing any work, understand the setup:**
|
|
467
|
+
|
|
468
|
+
### 1. What's their relationship to the product?
|
|
469
|
+
|
|
470
|
+
Ask early (or infer from context):
|
|
471
|
+
```
|
|
472
|
+
Quick question - what's your setup?
|
|
473
|
+
|
|
474
|
+
1. Building the product (I have/need a product repo)
|
|
475
|
+
2. GTM only (team handles code, I do marketing/content)
|
|
476
|
+
3. Contributor (I work on specific tasks, suggest changes)
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
### 2. Detect the repo structure
|
|
480
|
+
|
|
481
|
+
Check what repos/references exist:
|
|
482
|
+
```bash
|
|
483
|
+
ls -la # What's in this project?
|
|
484
|
+
cat .jfl/config.json # Project config
|
|
485
|
+
ls references/ # Any linked repos?
|
|
486
|
+
ls product/ # Product specs here?
|
|
487
|
+
git remote -v # What repo is this?
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
**Common setups:**
|
|
491
|
+
|
|
492
|
+
| Setup | What It Looks Like | How to Handle |
|
|
493
|
+
|-------|-------------------|---------------|
|
|
494
|
+
| **Building product** | `product/` submodule linked to product repo | Code changes go to product repo (submodule) |
|
|
495
|
+
| **GTM only** | No `product/` submodule, just `knowledge/`, `content/` | Focus on GTM, no code changes |
|
|
496
|
+
| **Contributor** | Has suggestions file, limited scope | Work in `suggestions/`, route through owner |
|
|
497
|
+
|
|
498
|
+
### 3. Where do changes go?
|
|
499
|
+
|
|
500
|
+
**Based on setup, route work correctly:**
|
|
501
|
+
|
|
502
|
+
| What They're Doing | Where It Goes |
|
|
503
|
+
|-------------------|---------------|
|
|
504
|
+
| Writing product code | Product repo (wherever that is) |
|
|
505
|
+
| Updating product spec | `product/SPEC.md` in this repo |
|
|
506
|
+
| Marketing content | `content/` in this repo |
|
|
507
|
+
| Brand/design work | `knowledge/BRAND*.md`, `previews/` |
|
|
508
|
+
| Strategic docs | `knowledge/` in this repo |
|
|
509
|
+
| CRM/outreach | `./crm` CLI (Google Sheets), `suggestions/` |
|
|
510
|
+
|
|
511
|
+
### 4. Store the setup in config
|
|
512
|
+
|
|
513
|
+
Once you understand their setup, save it:
|
|
514
|
+
```json
|
|
515
|
+
// .jfl/config.json
|
|
516
|
+
{
|
|
517
|
+
"name": "project-name",
|
|
518
|
+
"type": "gtm",
|
|
519
|
+
"setup": "building-product", // or "gtm-only", "contributor"
|
|
520
|
+
"product_repo": "github.com/...", // if building product
|
|
521
|
+
"product_path": "product/", // submodule path
|
|
522
|
+
"description": "..."
|
|
523
|
+
}
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
**Check this config at session start** - don't re-ask if already configured.
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## Working Modes
|
|
531
|
+
|
|
532
|
+
| Mode | Structure | Behavior |
|
|
533
|
+
|------|-----------|----------|
|
|
534
|
+
| **Building Product** | `product/` submodule → product repo | Code to `product/`, GTM to main repo. Commit to submodule first, then update reference. |
|
|
535
|
+
| **GTM Only** | No code, just `knowledge/`, `content/` | Focus on content/brand/outreach. Never suggest code changes. |
|
|
536
|
+
| **Contributor** | Has `suggestions/{name}.md` | Work within scope. Route suggestions through proper channels. |
|
|
537
|
+
|
|
538
|
+
**Detecting mode changes:**
|
|
539
|
+
- "I need to update the code" → Add product submodule if missing
|
|
540
|
+
- "I'm taking over the product" → Switch to building-product mode
|
|
541
|
+
- Update `.jfl/config.json` when mode changes
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
## Starting a New Project (Foundation Empty)
|
|
546
|
+
|
|
547
|
+
When knowledge docs are empty, pull them through foundation in order. Don't ask open-ended "What do you want to build?"
|
|
548
|
+
|
|
549
|
+
**Foundation checklist:**
|
|
550
|
+
|
|
551
|
+
1. **VISION.md** - What are you building? Who is it for? What problem does it solve? One-liner?
|
|
552
|
+
2. **ROADMAP.md** - When do you want to ship? MVP? Phases? Hard deadlines?
|
|
553
|
+
3. **NARRATIVE.md** - Casual pitch? Before/after? Key words? Emotional hook?
|
|
554
|
+
4. **THESIS.md** - Why will YOU win? What insight? Unfair advantage? Why now?
|
|
555
|
+
|
|
556
|
+
**Key principles:**
|
|
557
|
+
- Ask role-specific questions (don't ask non-technical founders about stack)
|
|
558
|
+
- Write to files immediately as they answer
|
|
559
|
+
- Provide examples/suggestions to guide them
|
|
560
|
+
- Allow "emergent" status - vision clarifies through building
|
|
561
|
+
- Don't skip docs - complete all four before building
|
|
562
|
+
|
|
563
|
+
**After foundation:**
|
|
564
|
+
- Check if ALL FOUR docs have real content (not templates)
|
|
565
|
+
- Then ask: "Foundation is set. Want to work on brand/design next, or jump into building?"
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
## Before Building Any UI/Frontend
|
|
570
|
+
|
|
571
|
+
**⚠️ ALWAYS establish brand direction before writing UI code**
|
|
572
|
+
|
|
573
|
+
**Check for brand decisions:**
|
|
574
|
+
1. `knowledge/BRAND_DECISIONS.md` - finalized choices
|
|
575
|
+
2. `knowledge/BRAND_BRIEF.md` - brand inputs
|
|
576
|
+
3. `knowledge/VOICE_AND_TONE.md` - personality/feel
|
|
577
|
+
|
|
578
|
+
**If no explicit brand docs, INFER from foundation:**
|
|
579
|
+
- Read NARRATIVE.md and VISION.md
|
|
580
|
+
- Extract tone, audience, positioning
|
|
581
|
+
- Propose direction and confirm
|
|
582
|
+
|
|
583
|
+
**Gather references:**
|
|
584
|
+
- Aesthetic refs: Sites they like
|
|
585
|
+
- Functional refs: Similar products done well
|
|
586
|
+
- Anti-refs: What to avoid
|
|
587
|
+
- Store in `references/` or note in `product/SPEC.md`
|
|
588
|
+
|
|
589
|
+
**NEVER:**
|
|
590
|
+
- Use another project's styling as default
|
|
591
|
+
- Assume dark theme without reason
|
|
592
|
+
- Pick random colors without basis
|
|
593
|
+
- Build UI "to get started" and "refine later"
|
|
594
|
+
|
|
595
|
+
Brand direction exists in foundation docs. Extract it, confirm it, build with intention.
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
## Product Specs: The Living Build Document
|
|
600
|
+
|
|
601
|
+
When building a product, maintain `product/SPEC.md` as the source of truth for implementation.
|
|
602
|
+
|
|
603
|
+
**Template sections:** What We're Building | Who It's For | Core Features (table) | Tech Stack | Current Focus | Decisions Made (table) | Open Questions | References (table)
|
|
604
|
+
|
|
605
|
+
See `templates/` folder for full spec template.
|
|
606
|
+
|
|
607
|
+
**When to use:**
|
|
608
|
+
- Before starting: Read spec for decisions already made
|
|
609
|
+
- While building: Update feature status, add decisions, note questions
|
|
610
|
+
- After building: Mark features done, document tech choices
|
|
611
|
+
|
|
612
|
+
**Spec vs Foundation:**
|
|
613
|
+
| Doc | Purpose | Updates |
|
|
614
|
+
|-----|---------|---------|
|
|
615
|
+
| VISION.md | Why we're building | Rarely |
|
|
616
|
+
| NARRATIVE.md | How we talk about it | Evolves |
|
|
617
|
+
| product/SPEC.md | What we're building | Every session |
|
|
618
|
+
|
|
619
|
+
**Before building, ensure foundation is complete:**
|
|
620
|
+
- Check VISION.md, ROADMAP.md, NARRATIVE.md, THESIS.md all have real content
|
|
621
|
+
- If any are missing, complete them first before asking "what to build?"
|
|
622
|
+
- Date handling: Dates without year assume future (next year if passed this year)
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
## Session Feedback
|
|
627
|
+
|
|
628
|
+
Every few sessions, ask: "How's JFL doing this session? (0-5)"
|
|
629
|
+
|
|
630
|
+
- **0-2:** Ask what went wrong, log to `.jfl/feedback.jsonl` with details
|
|
631
|
+
- **3-5:** Log rating only
|
|
632
|
+
|
|
633
|
+
Don't ask every session - maybe every 3rd or after major milestones.
|
|
634
|
+
|
|
635
|
+
Then:
|
|
636
|
+
1. Get right into building
|
|
637
|
+
2. Capture what they said into VISION.md in the background
|
|
638
|
+
3. As decisions are made, record them in the appropriate docs
|
|
639
|
+
4. Context compounds over time
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## After Planning
|
|
644
|
+
|
|
645
|
+
Before building, ask clarifying questions:
|
|
646
|
+
1. Specific question about their use case
|
|
647
|
+
2. Question about scope/priorities
|
|
648
|
+
3. Question about integrations/APIs
|
|
649
|
+
4. Any references or examples to pull in?
|
|
650
|
+
|
|
651
|
+
If foundation docs are empty, offer to capture what you learned into VISION.md, ROADMAP.md, etc.
|
|
652
|
+
|
|
653
|
+
Accept any format: pictures, documents, voice notes, links, stream of consciousness.
|
|
654
|
+
|
|
655
|
+
---
|
|
656
|
+
|
|
657
|
+
## On Every Conversation Start
|
|
658
|
+
|
|
659
|
+
### 1. Identify the User
|
|
660
|
+
|
|
661
|
+
**Authentication is required for owner access.** Git config alone is NOT trusted.
|
|
662
|
+
|
|
663
|
+
```bash
|
|
664
|
+
# Check JFL authentication status
|
|
665
|
+
jfl status 2>/dev/null
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
**Identity Resolution:**
|
|
669
|
+
|
|
670
|
+
| JFL Auth Status | Git Config | Identity | Access |
|
|
671
|
+
|-----------------|------------|----------|--------|
|
|
672
|
+
| Authenticated (GitHub/x402) | Any | Use JFL auth identity | Based on role |
|
|
673
|
+
| Not authenticated | Matches owner | **Unknown** - require auth | None until auth |
|
|
674
|
+
| Not authenticated | Other | New contributor | Onboard flow |
|
|
675
|
+
|
|
676
|
+
**If not authenticated, prompt:**
|
|
677
|
+
```
|
|
678
|
+
To access this project, please authenticate:
|
|
679
|
+
|
|
680
|
+
jfl login
|
|
681
|
+
|
|
682
|
+
This verifies your identity. Git config alone isn't enough for security.
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
**After authentication, check their role:**
|
|
686
|
+
- If JFL auth username matches owner in Team Config → Owner access
|
|
687
|
+
- If they have `suggestions/{name}.md` → Contributor access
|
|
688
|
+
- Otherwise → New contributor, create suggestions file
|
|
689
|
+
|
|
690
|
+
### 2. Determine User Type
|
|
691
|
+
|
|
692
|
+
| Type | Check | Permissions |
|
|
693
|
+
|------|-------|-------------|
|
|
694
|
+
| **Owner** | Listed in Team section below | Full edit access |
|
|
695
|
+
| **Contributor** | Has suggestions file | Route to suggestions |
|
|
696
|
+
| **New** | No suggestions file | Onboard first |
|
|
697
|
+
|
|
698
|
+
### 3. Show Status
|
|
699
|
+
|
|
700
|
+
Run `/hud` to show the project dashboard.
|
|
701
|
+
|
|
702
|
+
---
|
|
703
|
+
|
|
704
|
+
## Team Configuration
|
|
705
|
+
|
|
706
|
+
**Owner** (full edit access - must authenticate via `jfl login`):
|
|
707
|
+
- **Name:** {owner_name}
|
|
708
|
+
- **GitHub Username:** {owner_github_username}
|
|
709
|
+
- **x402 Address:** {owner_wallet_address}
|
|
710
|
+
|
|
711
|
+
**Core Team** (authenticated access):
|
|
712
|
+
| Name | GitHub Username | x402 Address | Role |
|
|
713
|
+
|------|-----------------|--------------|------|
|
|
714
|
+
| | | | |
|
|
715
|
+
|
|
716
|
+
**Contributors:** Identified by `suggestions/{name}.md` file. New users onboarded as contributors.
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
## Onboarding Flows
|
|
721
|
+
|
|
722
|
+
**New Contributor:** Orient → Profile → Assign
|
|
723
|
+
1. Explain VISION.md and NARRATIVE.md
|
|
724
|
+
2. Capture their strengths, role, time commitment in `suggestions/{name}.md`
|
|
725
|
+
3. Assign tasks from `knowledge/TASKS.md`
|
|
726
|
+
|
|
727
|
+
**Returning (> 7 days):** Show updates since last visit, remind them what they were working on
|
|
728
|
+
|
|
729
|
+
**Regular (< 7 days):** Show /hud dashboard, ask what to work on
|
|
730
|
+
|
|
731
|
+
---
|
|
732
|
+
|
|
733
|
+
## Knowledge Sources
|
|
734
|
+
|
|
735
|
+
**Check VISION.md status:** If `EMERGENT` → synthesize from living docs. If `DECLARED` → use declared vision.
|
|
736
|
+
|
|
737
|
+
**When EMERGENT, synthesize from:** Product specs → GTM strategy → `content/articles/` → `drafts/` → CRM notes → `knowledge/VISION.md`
|
|
738
|
+
|
|
739
|
+
### Other Strategic Docs
|
|
740
|
+
|
|
741
|
+
| Document | Purpose | How Claude Uses It |
|
|
742
|
+
|----------|---------|-------------------|
|
|
743
|
+
| `knowledge/NARRATIVE.md` | How you tell the story | Generate content |
|
|
744
|
+
| `knowledge/THESIS.md` | Why this wins | Answer "Why will you win?" |
|
|
745
|
+
| `knowledge/ROADMAP.md` | What ships when | Track progress, countdown |
|
|
746
|
+
|
|
747
|
+
### Brand Docs
|
|
748
|
+
|
|
749
|
+
| Document | Purpose |
|
|
750
|
+
|----------|---------|
|
|
751
|
+
| `knowledge/BRAND_BRIEF.md` | Brand inputs |
|
|
752
|
+
| `knowledge/BRAND_DECISIONS.md` | Finalized choices |
|
|
753
|
+
| `knowledge/VOICE_AND_TONE.md` | How the brand speaks |
|
|
754
|
+
|
|
755
|
+
### Collaboration Docs
|
|
756
|
+
|
|
757
|
+
| Document | Purpose |
|
|
758
|
+
|----------|---------|
|
|
759
|
+
| `knowledge/TASKS.md` | Master task list |
|
|
760
|
+
| `./crm` CLI | Contact database (Google Sheets) - **NEVER read a CRM.md file** |
|
|
761
|
+
| `suggestions/{name}.md` | Per-person working space |
|
|
762
|
+
|
|
763
|
+
---
|
|
764
|
+
|
|
765
|
+
## Collaboration System
|
|
766
|
+
|
|
767
|
+
### Routing Work
|
|
768
|
+
|
|
769
|
+
**Owner:** Can edit any file directly.
|
|
770
|
+
|
|
771
|
+
**Everyone else:** Work goes to `suggestions/{name}.md`:
|
|
772
|
+
- Contact updates
|
|
773
|
+
- Task progress
|
|
774
|
+
- Ideas and suggestions
|
|
775
|
+
- Research findings
|
|
776
|
+
|
|
777
|
+
Owner reviews and merges.
|
|
778
|
+
|
|
779
|
+
### CRM Through Conversation
|
|
780
|
+
|
|
781
|
+
Don't make people type in spreadsheets. Capture updates naturally:
|
|
782
|
+
|
|
783
|
+
```
|
|
784
|
+
User: "I DMed @person today"
|
|
785
|
+
|
|
786
|
+
Claude: "Got it. Logging:
|
|
787
|
+
- @person: DM_SENT
|
|
788
|
+
|
|
789
|
+
What angle did you use?"
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
Log to their suggestions file:
|
|
793
|
+
```markdown
|
|
794
|
+
## CRM UPDATES (for sync)
|
|
795
|
+
| Handle | Action | Status | Date | Notes |
|
|
796
|
+
|--------|--------|--------|------|-------|
|
|
797
|
+
| @person | UPDATE | DM_SENT | {date} | |
|
|
798
|
+
```
|
|
799
|
+
|
|
800
|
+
### Task Updates
|
|
801
|
+
|
|
802
|
+
Same pattern:
|
|
803
|
+
```
|
|
804
|
+
User: "Finished the thread draft"
|
|
805
|
+
|
|
806
|
+
Claude: "Nice! Marking complete.
|
|
807
|
+
|
|
808
|
+
## TASK UPDATES
|
|
809
|
+
| Task | Status | Notes |
|
|
810
|
+
|------|--------|-------|
|
|
811
|
+
| Write launch thread | DONE | |
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
---
|
|
815
|
+
|
|
816
|
+
## Skills Available
|
|
817
|
+
|
|
818
|
+
| Skill | Purpose | Key Commands |
|
|
819
|
+
|-------|---------|--------------|
|
|
820
|
+
| `/hud` | Project dashboard | `(default)` full dashboard, `--compact` one-line |
|
|
821
|
+
| `/brand-architect` | Brand creation | `(default)` full workflow, `marks`, `colors` |
|
|
822
|
+
| `/web-architect` | Asset implementation | `audit`, `implement all` |
|
|
823
|
+
| `/content` | Content creation | `thread [topic]`, `post [topic]`, `article [topic]`, `one-pager [topic]` |
|
|
824
|
+
| `/video` | Founder video scripts | `idea [topic]`, `script [topic]`, `hook [topic]`, `story [exp]`, `batch [theme]` |
|
|
825
|
+
| `/startup` | Startup guidance | `(default)` assess stage, `next`, `validate [idea]`, `mvp [idea]`, `customers`, `launch` |
|
|
826
|
+
|
|
827
|
+
See `skills/` folder for detailed documentation on each skill.
|
|
828
|
+
|
|
829
|
+
---
|
|
830
|
+
|
|
831
|
+
## The Workflow Phases
|
|
832
|
+
|
|
833
|
+
1. **Foundation** - Copy templates to `knowledge/`, fill VISION/NARRATIVE/THESIS/ROADMAP
|
|
834
|
+
2. **Collaboration Setup** - Edit Team section, create `suggestions/` files, set up `./crm`
|
|
835
|
+
3. **Brand** - Fill `BRAND_BRIEF.md`, run `/brand-architect`, record decisions, run `/web-architect implement all`
|
|
836
|
+
4. **Content** - Use `/content` for threads/posts/articles, preview in `previews/content/`
|
|
837
|
+
5. **Launch** - Track with `/hud`, execute tasks, ship it
|
|
838
|
+
|
|
839
|
+
---
|
|
840
|
+
|
|
841
|
+
## File Conventions
|
|
842
|
+
|
|
843
|
+
### Suggestions Files
|
|
844
|
+
|
|
845
|
+
```markdown
|
|
846
|
+
# Suggestions - @{name}
|
|
847
|
+
|
|
848
|
+
## PROFILE
|
|
849
|
+
{captured during onboarding}
|
|
850
|
+
|
|
851
|
+
## CURRENT SESSION
|
|
852
|
+
{what they're working on}
|
|
853
|
+
|
|
854
|
+
## CRM UPDATES (for sync)
|
|
855
|
+
| Handle | Action | Status | Date | Notes |
|
|
856
|
+
|--------|--------|--------|------|-------|
|
|
857
|
+
|
|
858
|
+
## TASK UPDATES (for sync)
|
|
859
|
+
| Task | Status | Notes |
|
|
860
|
+
|------|--------|-------|
|
|
861
|
+
|
|
862
|
+
## IDEAS
|
|
863
|
+
{their suggestions}
|
|
864
|
+
```
|
|
865
|
+
|
|
866
|
+
### SVG Naming
|
|
867
|
+
|
|
868
|
+
```
|
|
869
|
+
{type}-{variant}-{size}-{theme}.svg
|
|
870
|
+
|
|
871
|
+
Examples:
|
|
872
|
+
mark-v1-80-dark.svg
|
|
873
|
+
banner-xl-1500x500-dark.svg
|
|
874
|
+
favicon-32-dark.svg
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
---
|
|
878
|
+
|
|
879
|
+
## Session End
|
|
880
|
+
|
|
881
|
+
When they say "done", "bye", "exit":
|
|
882
|
+
|
|
883
|
+
### 1. Save Their Work
|
|
884
|
+
|
|
885
|
+
Update their suggestions file with everything from this session.
|
|
886
|
+
|
|
887
|
+
### 2. Commit and Push
|
|
888
|
+
|
|
889
|
+
```bash
|
|
890
|
+
git add .
|
|
891
|
+
git commit -m "{name}: {brief summary}"
|
|
892
|
+
git push
|
|
893
|
+
```
|
|
894
|
+
|
|
895
|
+
### 3. Confirm
|
|
896
|
+
|
|
897
|
+
```
|
|
898
|
+
Saved and pushed!
|
|
899
|
+
|
|
900
|
+
See you next time.
|
|
901
|
+
```
|
|
902
|
+
|
|
903
|
+
---
|
|
904
|
+
|
|
905
|
+
## Context to Always Have
|
|
906
|
+
|
|
907
|
+
Read from your living docs and synthesize. Don't rely on stale one-liners.
|
|
908
|
+
|
|
909
|
+
**Launch Date:** {from ROADMAP.md}
|
|
910
|
+
**Current Phase:** {from ROADMAP.md}
|
|
911
|
+
**What we're building:** {synthesize from product spec, articles, drafts}
|
|
912
|
+
**Who it's for:** {synthesize from GTM strategy, CRM notes}
|
|
913
|
+
|
|
914
|
+
Pull fresh from the docs each session. The vision emerges through building, not declaration.
|
|
915
|
+
|
|
916
|
+
---
|
|
917
|
+
|
|
918
|
+
## Error Handling
|
|
919
|
+
|
|
920
|
+
### Missing Foundation Docs
|
|
921
|
+
|
|
922
|
+
```
|
|
923
|
+
Strategic docs not found.
|
|
924
|
+
|
|
925
|
+
To get started:
|
|
926
|
+
1. Copy templates from templates/strategic/ to knowledge/
|
|
927
|
+
2. Fill in VISION.md, NARRATIVE.md, THESIS.md, ROADMAP.md
|
|
928
|
+
3. Run /hud to see your dashboard
|
|
929
|
+
```
|
|
930
|
+
|
|
931
|
+
### Missing Brand Brief
|
|
932
|
+
|
|
933
|
+
```
|
|
934
|
+
Brand brief not found.
|
|
935
|
+
|
|
936
|
+
To create your brand:
|
|
937
|
+
1. Copy templates/brand/BRAND_BRIEF.md to knowledge/
|
|
938
|
+
2. Fill in your brand details
|
|
939
|
+
3. Run /brand-architect
|
|
940
|
+
```
|
|
941
|
+
|
|
942
|
+
### Unknown User
|
|
943
|
+
|
|
944
|
+
```
|
|
945
|
+
I don't have a suggestions file for you yet.
|
|
946
|
+
|
|
947
|
+
What's your name? I'll get you set up.
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
---
|
|
951
|
+
|
|
952
|
+
## Remember
|
|
953
|
+
|
|
954
|
+
1. **Foundation first** - Strategy docs before tactics
|
|
955
|
+
2. **Route to suggestions** - Non-owners don't edit main docs
|
|
956
|
+
3. **Capture naturally** - CRM updates through conversation
|
|
957
|
+
4. **Context compounds** - Each session builds on the last
|
|
958
|
+
5. **Ship it** - The goal is launch, not endless iteration
|
|
959
|
+
|
|
960
|
+
---
|