Investigate: Hook Model AFPS Gap
Scope: whether this repository already has a skill for Nir Eyal's Hooked model, and whether the AFPS workflow has a routing or coverage gap around using it.
Skill: investigateDate: 2026-05-31Output: report-only investigation
Executive Verdict
Confirmed: the repository already has a mirrored hook-model skill in packs/business-growth/{codex,claude}/hook-model/SKILL.md. The Codex skill explicitly describes "Nir Eyal engagement loop design" and maps external trigger, internal trigger, action, variable reward, and investment.
Gap: AFPS does not lack the Hooked-model skill. The gap is conditional route exposure. The default AFPS route and status router make hook-model easy to miss unless the user or a later lifecycle skill already knows to ask for it.
The right fix is not to make Hooked mandatory. The model is useful for consumer, prosumer, marketplace, community, and PLG products where repeat behavior is part of product value. It should stay conditional for B2B, enterprise, infrastructure, and naturally infrequent products.
User Claims Validated
| Claim Or Question | Verdict | Evidence | Decision Impact |
|---|---|---|---|
| "Do we have a skill where we can incorporate Nir Eyal's Hooked model?" | Confirmed | packs/business-growth/codex/hook-model/SKILL.md:2-6, :25, and mirrored Claude contract. |
Do not create a new skill. Reuse and route to hook-model. |
| "Focus on the AFPS workflow and see if we have a gap there." | Confirmed, but the gap is routing rather than skill content | Default AFPS route omits hook-model in docs/pack-workflow-matrix.md:48 and docs/skill-next-step-contracts.md:28. docs/codex-workflow.md:338 only names it as a broad optional growth detour. |
Add a conditional AFPS route for repeat-use/habit risk instead of broad default inclusion. |
Evidence Matrix
| Major Claim | Evidence | Inference | Confidence | Assumption Status | Decision Impact |
|---|---|---|---|---|---|
| The Hooked-model skill exists and is active. | packs/business-growth/codex/hook-model/SKILL.md:2-6; packs/business-growth/claude/hook-model/SKILL.md:2-6. |
The skill name, description, and mirrored files are active pack contracts, not archived remnants. | High | Observed from active files. | No new skill is needed. |
| The skill already implements the Hooked model components. | packs/business-growth/codex/hook-model/SKILL.md:25 and :90-115. |
The contract maps external triggers, internal triggers, action, variable reward, and investment, and defines reward types. | High | Observed from active file. | Any AFPS incorporation should route to this skill rather than duplicating the framework elsewhere. |
| The skill is appropriately guarded against misuse. | packs/business-growth/codex/hook-model/SKILL.md:31, :63-77, and :292-302. |
It requires journey-map context, checks product applicability, routes B2B/enterprise cases toward metrics, and includes ethical constraints. | High | Observed from active file. | Hooked should remain a conditional detour, not a required AFPS chain link. |
Business-growth pack metadata does put hook-model first. |
packs/business-growth/PACK.md:5-10. |
Inside the growth lane, the intended default flow starts with hook-model before metrics. | High | Observed from pack metadata. | There is a mismatch between pack-level growth flow and AFPS-level route exposure. |
AFPS default route skips hook-model. |
docs/pack-workflow-matrix.md:48, docs/skill-next-step-contracts.md:28, global/codex/codebase-status/SKILL.md:65. |
The canonical AFPS chain goes from journey/positioning into UX and prototype, with optional value/lean detours but no explicit hook-model branch. | High | Observed from active docs/contracts. | Status/routing skills can overlook engagement-loop work even when a product is habit-suitable. |
| Some docs acknowledge growth skills as optional, but not with a decision rule. | docs/codex-workflow.md:338; docs/canonical-workflow-report.md:104-140. |
The docs say growth skills are optional when ready, but they do not define the product condition that makes hook-model the right next step. |
Medium-high | Observed from docs; interpretation based on absence of a precise rule. | Add a narrow trigger condition rather than broad route churn. |
journey-map has a priority-order bug around stage risks. |
packs/customer-lifecycle/codex/journey-map/SKILL.md:63-70; mirrored Claude contract follows the same pattern. |
The branch for "specific stage risk" is listed after missing positioning and missing UX checks, even though it says the risk may need resolution before positioning or UX. | High | Observed from active file. | This is the likely owning place to expose a conditional hook-model route. |
retention-map can route to hook-model, but only after the user gets into deeper lifecycle work. |
packs/customer-lifecycle/codex/retention-map/SKILL.md:67-68. |
The skill names hook-model as a preferred next step contextually, but AFPS does not reliably route to retention-map first. |
High | Observed from active file. | The current path can work, but it relies on an upstream branch that is under-specified and lower priority than positioning/UX. |
Root Cause
The root cause is route-policy drift after AFPS routing was tightened around journey-first, positioning, and prototype gates.
6ee5a6f1routed competitive analysis through journey mapping, which correctly moved customer journey before solution-value work.d93edf39aligned AFPS defaults aroundicp -> competitive-analysis -> journey-map -> positioning -> ux-variations, but that default route does not preserve a named condition for Hooked-model work.0f5f6e5bsplit the customer-lifecycle pack and left the growth pack's internal flow intact, sohook-modelexists but sits in a later lane.journey-mapcurrently states that specific lifecycle-stage risks can block positioning or UX, but that branch appears after the missing-positioning and missing-UX checks.
Relationship to the user's theory: the question is directionally right. AFPS has a gap around incorporating Hooked-model thinking, but the gap is not the absence of a skill. It is the absence of an explicit conditional handoff from AFPS lifecycle discovery into the existing hook-model skill.
AFPS Gap
What Works Today
$hook-modelexists in thebusiness-growthpack.- It requires
research/journey-map.md, which is the right AFPS prerequisite. - It can be reached from
$retention-mapwhen context suggests it. $afps-statushas a broad lifecycle/growth-gap stage and can recommend business-growth generally.
What Is Missing
- No default AFPS route says when repeat-use or habit-loop evidence should route to
$hook-model. $journey-mapdoes not name$hook-modelin its specific-stage-risk branch.$journey-mapchecks missing positioning and missing UX before the stage-risk branch, making the stage-risk branch less effective.$afps-statususes generic wording for lifecycle/growth questions, so it may recommend$metrics,$gtm, or pack install without recognizing that$hook-modelis the narrower step for habit-suitable products.- Docs disagree slightly:
business-growth/PACK.mdstarts growth withhook-model, while canonical AFPS examples often start the growth lane withmetrics.
Practical Failure Mode
For a consumer or PLG product with a journey map that shows repeat-use behavior, onboarding return triggers, social rewards, saved state, or habit potential, the agent may still route directly to $positioning or $ux-variations. That skips explicit design of trigger, action, variable reward, and investment loops before the experience is prototyped.
Recommendation
Recommended remediation: make hook-model a conditional AFPS detour after journey-map or focused retention-map, before metrics, ux-variations, or growth planning, when the evidence shows repeat-use/habit mechanics matter.
Suggested Contract Rule
Add a rule along these lines to AFPS routing contracts and mirrored journey-map next-step routing:
If the journey map exposes a repeat-use, engagement-loop, retention-trigger, social-reward, saved-state, or habit-formation risk that should shape the product experience, check business-growth availability. If business-growth is not enabled, recommend pack install. If enabled, recommend hook-model. For B2B, enterprise, infrastructure, or naturally infrequent usage, skip hook-model and route to metrics or lifecycle-metrics instead.
Likely Owning Files For A Follow-Up Patch
packs/customer-lifecycle/{codex,claude}/journey-map/SKILL.md- reorder specific-stage-risk routing before positioning/UX and includehook-modelfor habit-suitable repeat-use risk.global/codex/afps-status/SKILL.md- make lifecycle/growth-gap classification distinguishhook-modelfrom generic growth work.docs/skill-next-step-contracts.md- update thejourney-mapandhook-modelrows so audits know the rule.docs/pack-workflow-matrix.mdanddocs/codex-workflow.md- clarify thathook-modelis conditional, not a default required chain link.- Focused layer1 test - assert that
journey-mapcan route repeat-use stage risk tohook-modelwith a business-growth pack guard, and that AFPS default docs do not make it mandatory.
Non-Goals
- Do not duplicate Hooked-model prompts inside
journey-map,positioning, orux-variations. - Do not make
hook-modelmandatory for all AFPS products. - Do not remove the existing B2B/enterprise skip guard.
- Do not route directly from raw idea or ICP to
hook-model; it needs journey evidence.
Alternatives Considered
| Alternative | Pros | Cons | Verdict |
|---|---|---|---|
| Create a new Hooked-model skill | Could be tailored to AFPS language. | Duplicates an active, mirrored skill that already has prerequisites, output, ethics, and next-step routing. | Rejected. |
Make hook-model mandatory in the default AFPS chain |
Ensures it is never missed. | Overfits consumer/PLG thinking onto enterprise, infrastructure, and infrequent-use products. | Rejected. |
Keep it only in business-growth/PACK.md |
No changes needed. | Leaves AFPS status and journey routing dependent on user memory or lucky branch selection. | Rejected. |
Add a conditional route from lifecycle evidence to hook-model |
Reuses the existing skill, respects prerequisites, and avoids forcing habit thinking where it does not belong. | Requires mirrored skill/docs/test updates. | Recommended. |
Confidence And Assumption Register
| Conclusion | Confidence | What Could Change It |
|---|---|---|
hook-model exists and is the right skill to reuse. |
High | A hidden external skill could supersede it, but active repo evidence is sufficient for this repository. |
| AFPS has a conditional route gap. | High | If there is a separate runtime router not represented in skill/docs contracts, it could already handle this. No such router appeared in the local evidence reviewed. |
| The fix should be conditional, not default. | High | If the project deliberately wants all consumer-product AFPS flows to over-index on habit formation, a stronger default could be chosen. That would need explicit product philosophy approval. |
journey-map is the primary owner for the route branch. |
Medium-high | A future design could put the rule in afps-status only, but journey-map already owns lifecycle-stage risk detection. |
Approval Gates
Evidence Coverage Gate
Review whether the local file and git evidence supports the recommendation.
Recommendation Gate
Choose the remediation direction for a follow-up implementation pass.
Scope Gate
This investigation produced a report and did not mutate skill contracts.
Compile Answers
Answer every required gate question above to compile review YAML for the agent.
3 unanswered required questions