@higrowth/cli 0.3.4 → 0.3.5
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/dist/index.js +138 -8
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -726,7 +726,7 @@ Plans are not giant backlogs. A good plan is a scoped intervention:
|
|
|
726
726
|
one topic area, page cluster, gap type, or conversion slice with enough
|
|
727
727
|
evidence to act and narrow enough boundaries to avoid conflicting work.
|
|
728
728
|
|
|
729
|
-
The planning stack has
|
|
729
|
+
The planning stack has six layers:
|
|
730
730
|
|
|
731
731
|
1. **Answer map** \u2014 what questions the site answers for which persona
|
|
732
732
|
and decision stage.
|
|
@@ -741,12 +741,17 @@ The planning stack has five layers:
|
|
|
741
741
|
5. **Scoped plans** \u2014 a small selected scope that generates execution
|
|
742
742
|
items from roadmap rows, scoped gaps, pages, answer cells, or decision
|
|
743
743
|
candidates.
|
|
744
|
+
6. **Authored plans** \u2014 when the harness can synthesize the right
|
|
745
|
+
strategic shape better than the built-in generator, it may write the
|
|
746
|
+
staging plan artifact directly into HG via the authored-plan API,
|
|
747
|
+
using HG signals as evidence.
|
|
744
748
|
|
|
745
749
|
Rank by **leverage, evidence, and executability**, not raw opportunity count.
|
|
746
750
|
Never create work orders directly from imagination candidates. Promote
|
|
747
751
|
good imagination candidates into decision candidates first, then plan.
|
|
748
752
|
Roadmap rows do not need promotion: use them directly when the user's
|
|
749
|
-
intent is to execute a topic roadmap.
|
|
753
|
+
intent is to execute a topic roadmap. Authored plans do not bypass
|
|
754
|
+
review or execution approval: they create/edit staging plan artifacts.
|
|
750
755
|
|
|
751
756
|
## The conversation
|
|
752
757
|
|
|
@@ -1122,7 +1127,126 @@ console.log(detail.items.map(i => ({
|
|
|
1122
1127
|
Explain what to review and which first 1-3 items are safest to move into
|
|
1123
1128
|
execution.
|
|
1124
1129
|
|
|
1125
|
-
### Step 10 \u2014
|
|
1130
|
+
### Step 10 \u2014 Or hand-author the plan when the harness can do better
|
|
1131
|
+
|
|
1132
|
+
If the user wants a specific strategic outcome and the built-in plan
|
|
1133
|
+
generator is producing the wrong shape, the harness may directly author
|
|
1134
|
+
the plan into HG. This is allowed. Do it only after reading enough HG
|
|
1135
|
+
context to make the plan useful: diagnostic narrative, topic/pillar ids,
|
|
1136
|
+
topic roadmap rows, decision candidates, gaps, page signals,
|
|
1137
|
+
strategy/KB facts, and user constraints from the conversation.
|
|
1138
|
+
|
|
1139
|
+
Use this path when the outcome is "get the right plan artifact into HG"
|
|
1140
|
+
rather than "let HG generate whatever it thinks is next." The import
|
|
1141
|
+
creates a staging plan with provenance; it does not dispatch work.
|
|
1142
|
+
|
|
1143
|
+
\`\`\`ts
|
|
1144
|
+
const imported = await api.post(\`/api/entities/\${entityId}/plans/import\`, {
|
|
1145
|
+
source: 'codex-harness',
|
|
1146
|
+
name: 'Decision-stage proof sprint',
|
|
1147
|
+
description: 'Tighten evaluation pages around buyer objections and proof gaps.',
|
|
1148
|
+
narrative: [
|
|
1149
|
+
'The strategic bet is...',
|
|
1150
|
+
'The evidence says...',
|
|
1151
|
+
'The execution risk is...',
|
|
1152
|
+
'The expected outcome is...',
|
|
1153
|
+
].join('
|
|
1154
|
+
|
|
1155
|
+
'),
|
|
1156
|
+
kind: 'scoped_plan',
|
|
1157
|
+
topicId,
|
|
1158
|
+
mode: 'grow',
|
|
1159
|
+
contextManifest: {
|
|
1160
|
+
diagnosticId,
|
|
1161
|
+
topicId,
|
|
1162
|
+
roadmapItemIds: openRoadmapItems.map(item => item.id),
|
|
1163
|
+
decisionCandidateIds: selected?.decisionCandidateIds ?? [],
|
|
1164
|
+
gapIds: selected?.gapIds ?? [],
|
|
1165
|
+
pageIds: selected?.pageIds ?? [],
|
|
1166
|
+
},
|
|
1167
|
+
inputSnapshot: {
|
|
1168
|
+
userIntent: q,
|
|
1169
|
+
selectedScope: selected ?? null,
|
|
1170
|
+
preview: preview ?? null,
|
|
1171
|
+
openRoadmapItems,
|
|
1172
|
+
topDecisionCandidates: decisions.candidates.slice(0, 10),
|
|
1173
|
+
},
|
|
1174
|
+
items: [
|
|
1175
|
+
{
|
|
1176
|
+
type: 'manual',
|
|
1177
|
+
kind: 'page_overhaul',
|
|
1178
|
+
title: 'Rewrite the comparison proof section',
|
|
1179
|
+
description: 'Make the evaluation page answer the buyer objection directly.',
|
|
1180
|
+
rationale: 'Grounded in the decision-stage answer gap and weak proof coverage.',
|
|
1181
|
+
pillarId: topicId,
|
|
1182
|
+
pillarName: topicName,
|
|
1183
|
+
targetPageUrl: 'https://example.com/product/comparison',
|
|
1184
|
+
sequence: 1,
|
|
1185
|
+
addressesLenses: ['conversion', 'supply'],
|
|
1186
|
+
brief: {
|
|
1187
|
+
objective: 'Win evaluation-stage trust for the selected persona.',
|
|
1188
|
+
acceptance: [
|
|
1189
|
+
'Lead with a direct answer in the first 100 words',
|
|
1190
|
+
'Add proof points tied to the named persona',
|
|
1191
|
+
],
|
|
1192
|
+
evidence: {
|
|
1193
|
+
roadmapItemIds: openRoadmapItems.map(item => item.id),
|
|
1194
|
+
decisionCandidateIds: selected?.decisionCandidateIds ?? [],
|
|
1195
|
+
gapIds: selected?.gapIds ?? [],
|
|
1196
|
+
},
|
|
1197
|
+
},
|
|
1198
|
+
},
|
|
1199
|
+
],
|
|
1200
|
+
});
|
|
1201
|
+
|
|
1202
|
+
console.log(imported.plan.id, imported.itemIds);
|
|
1203
|
+
\`\`\`
|
|
1204
|
+
|
|
1205
|
+
If the user has delegated the strategy call and the imported plan is
|
|
1206
|
+
ready for the team to use, inspect it and accept it:
|
|
1207
|
+
|
|
1208
|
+
\`\`\`ts
|
|
1209
|
+
const accepted = await api.post(\`/api/plans/\${imported.plan.id}/accept\`, {});
|
|
1210
|
+
|
|
1211
|
+
console.log(accepted.plan.id, accepted.plan.status);
|
|
1212
|
+
\`\`\`
|
|
1213
|
+
|
|
1214
|
+
Accepting promotes the plan artifact to \`active\`. It still does not
|
|
1215
|
+
dispatch work orders; item execution remains on the normal review/status
|
|
1216
|
+
path.
|
|
1217
|
+
|
|
1218
|
+
Use follow-up authoring endpoints when the user wants refinement:
|
|
1219
|
+
|
|
1220
|
+
\`\`\`ts
|
|
1221
|
+
await api.patch(\`/api/plans/\${planId}/authoring\`, {
|
|
1222
|
+
narrative: revisedNarrative,
|
|
1223
|
+
mode: 'defend',
|
|
1224
|
+
});
|
|
1225
|
+
|
|
1226
|
+
await api.patch(\`/api/plans/\${planId}/items/\${itemId}/authoring\`, {
|
|
1227
|
+
title: revisedTitle,
|
|
1228
|
+
rationale: revisedRationale,
|
|
1229
|
+
addressesLenses: ['conversion'],
|
|
1230
|
+
});
|
|
1231
|
+
|
|
1232
|
+
await api.put(\`/api/plans/\${planId}/items/\${itemId}/brief\`, {
|
|
1233
|
+
brief: revisedBrief,
|
|
1234
|
+
});
|
|
1235
|
+
\`\`\`
|
|
1236
|
+
|
|
1237
|
+
Important boundaries:
|
|
1238
|
+
- Direct-authored plans are imported as \`staging\`. Accept them only when
|
|
1239
|
+
the user has delegated that decision or after the user reviews the
|
|
1240
|
+
artifact.
|
|
1241
|
+
- Only edit/delete authored items while they are \`todo\` or \`review\`.
|
|
1242
|
+
Once an item is in progress, treat it as execution state.
|
|
1243
|
+
- Do not bypass conflict thinking. If you skipped scoped generation
|
|
1244
|
+
because the harness authored the strategy, still read existing plans
|
|
1245
|
+
and explain overlap risks.
|
|
1246
|
+
- Do not create work orders directly from the authored plan. Work orders
|
|
1247
|
+
are projected by HG when plan items move through the normal approval path.
|
|
1248
|
+
|
|
1249
|
+
### Step 11 \u2014 Generate content briefs when the plan item is ready
|
|
1126
1250
|
|
|
1127
1251
|
For roadmap new-page rows or plan items that need a writer-ready brief,
|
|
1128
1252
|
use the brief generator only when you can resolve a source question id
|
|
@@ -1151,7 +1275,7 @@ If the generator asks for missing inputs, do not invent them. Surface the
|
|
|
1151
1275
|
open questions to the user and use the brief chat/context flow to fill
|
|
1152
1276
|
only those blanks. Then regenerate with the user's guidance.
|
|
1153
1277
|
|
|
1154
|
-
### Step
|
|
1278
|
+
### Step 12 \u2014 Set expectations
|
|
1155
1279
|
|
|
1156
1280
|
End with reality:
|
|
1157
1281
|
|
|
@@ -1189,8 +1313,9 @@ End with reality:
|
|
|
1189
1313
|
- One bounded scope picked
|
|
1190
1314
|
- Conflicts reviewed
|
|
1191
1315
|
- One scoped plan created
|
|
1192
|
-
- Scoped generation run
|
|
1193
|
-
|
|
1316
|
+
- Scoped generation run, or a hand-authored staging plan imported when
|
|
1317
|
+
the harness can produce the better strategic shape
|
|
1318
|
+
- Generated or authored items cite the selected evidence spine
|
|
1194
1319
|
- Content briefs generated only from resolvable roadmap/plan-item source
|
|
1195
1320
|
questions, with user guidance captured when needed
|
|
1196
1321
|
- First execution items are obvious
|
|
@@ -1212,6 +1337,11 @@ End with reality:
|
|
|
1212
1337
|
include \`topic_roadmap\` in \`includedSignals\`.
|
|
1213
1338
|
- Don't create a plan that overlaps blocked active work.
|
|
1214
1339
|
- Don't create work orders from imagination candidates.
|
|
1340
|
+
- Don't use the authored-plan API as a shortcut around evidence. It is
|
|
1341
|
+
for writing a better plan artifact into HG after reading HG context,
|
|
1342
|
+
not for making up work.
|
|
1343
|
+
- Don't edit in-progress/published/verified plan items through authoring
|
|
1344
|
+
endpoints. Those are execution state.
|
|
1215
1345
|
- Don't hand-write content briefs when the brief generator has a source
|
|
1216
1346
|
question. Generate, inspect open questions, collect guidance, then
|
|
1217
1347
|
regenerate.
|
|
@@ -1402,7 +1532,7 @@ var SKILLS = [
|
|
|
1402
1532
|
{
|
|
1403
1533
|
slug: "higrowth-marketing-strategy",
|
|
1404
1534
|
title: "Marketing strategy chat",
|
|
1405
|
-
description: "Walk a diagnostic, pick a scoped topic or roadmap,
|
|
1535
|
+
description: "Walk a diagnostic, pick a scoped topic or roadmap, generate or hand-author the staging plan.",
|
|
1406
1536
|
body: MARKETING_STRATEGY
|
|
1407
1537
|
},
|
|
1408
1538
|
{
|
|
@@ -1647,7 +1777,7 @@ function beginUpdateCheck(currentVersion) {
|
|
|
1647
1777
|
// package.json
|
|
1648
1778
|
var package_default = {
|
|
1649
1779
|
name: "@higrowth/cli",
|
|
1650
|
-
version: "0.3.
|
|
1780
|
+
version: "0.3.5",
|
|
1651
1781
|
description: "Higrowth CLI \u2014 log in via browser, install Claude Code / Codex skills, manage the MCP connection.",
|
|
1652
1782
|
type: "module",
|
|
1653
1783
|
license: "Apache-2.0",
|