organtic 1.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.
Files changed (3) hide show
  1. package/README.md +149 -0
  2. package/index.mjs +405 -0
  3. package/package.json +49 -0
package/README.md ADDED
@@ -0,0 +1,149 @@
1
+ # Organtic
2
+
3
+ > Most founders fail not from bad ideas, but from the gap between knowing what to build and actually building it. Organtic closes that gap.
4
+
5
+ **25 specialized AI agents organized into 8 independent plugins** that work alone or chain together into a complete idea-to-execution pipeline. Each agent brings deep framework expertise — not generic advice, but proven methodologies that top strategists and builders actually use.
6
+
7
+ ## The Problem
8
+
9
+ You have an idea. Now what?
10
+
11
+ Validation needs value proposition mapping and jobs-to-be-done analysis. Product strategy needs growth loops and product operating models. Go-to-market needs offer design, conversion copywriting, funnel architecture, and paid media planning. Then you still need to build the landing page, write the pitch deck, design the slides, and record the demo.
12
+
13
+ That's 23 different disciplines. No solo founder or small team has all of them.
14
+
15
+ ## The Solution
16
+
17
+ ```
18
+ npx organtic
19
+ ```
20
+
21
+ One command. Pick the plugins you need. Each one works independently — or chain them all together.
22
+
23
+ ```
24
+ STRATEGY PIPELINE EXECUTION PLUGINS
25
+ validate > build > launch craft | document | present | studio
26
+ 3 experts 4 experts 7 experts 4 agents 2 agents 1 agent 3 agents
27
+ ```
28
+
29
+ **Install one plugin** when you need a specific expert.
30
+ **Install all eight** when you want the full pipeline from idea to shipped product.
31
+
32
+ ## Strategy Pipeline
33
+
34
+ Three plugins that chain together. Each builds on the previous phase's findings.
35
+
36
+ ### validate — Is this idea worth building?
37
+
38
+ 3 experts that pressure-test your idea before you write a line of code.
39
+
40
+ | Expert | What they do | Output |
41
+ |--------|-------------|--------|
42
+ | **Value Mapper** | Maps value propositions against customer jobs, pains, and gains | Value proposition canvas, customer segments |
43
+ | **Business Modeler** | Designs revenue models, competitive positioning, and pricing strategy | Business model canvas, pricing model, blue ocean map |
44
+ | **Experiment Designer** | Designs and prioritizes validation experiments | Prioritized experiment backlog, test designs |
45
+
46
+ ### build — What exactly should we ship?
47
+
48
+ 4 experts that turn a validated idea into a buildable product spec.
49
+
50
+ | Expert | What they do | Output |
51
+ |--------|-------------|--------|
52
+ | **Product Strategist** | Defines product strategy, growth loops, and operating model | Product strategy doc, growth model |
53
+ | **Growth Designer** | Designs retention loops, engagement triggers, and product-led growth | Habit loops, activation flows, retention curves |
54
+ | **Spec Writer** | Shapes buildable specs with clear appetite and scope | Shaped pitches, fat-marker sketches, scope tables |
55
+ | **Product Designer** | Creates accessible UI/UX driven by user jobs and AI interaction patterns | Wireframes, interaction design, component specs |
56
+
57
+ ### launch — How do we get customers?
58
+
59
+ 7 experts that build your complete go-to-market engine. Runs in three waves: strategy first, coherence audit, then execution.
60
+
61
+ | Expert | What they do | Output |
62
+ |--------|-------------|--------|
63
+ | **Offer Designer** | Designs irresistible offers with pricing, guarantees, and bonuses | Offer stack, value equation score, pricing tiers |
64
+ | **Copywriter** | Writes conversion copy from voice-of-customer research | Landing page copy, email sequences, ad copy |
65
+ | **Funnel Architect** | Architects conversion funnels with AI-native qualification | Funnel blueprint, lead magnets, email flows |
66
+ | **Growth Auditor** | Audits all strategies for coherence and prioritizes actions | Gap analysis, prioritized roadmap, growth loop map |
67
+ | **Media Planner** | Plans paid media with budget allocation and creative testing | Channel plan, budget splits, ad creative briefs |
68
+ | **SEO Strategist** | Designs search strategy with technical SEO and content architecture | Keyword map, content clusters, technical audit |
69
+ | **AI Search Optimizer** | Optimizes visibility in AI-powered search and assistants | Entity map, structured data plan, citation strategy |
70
+
71
+ ## Execution Plugins
72
+
73
+ Four plugins that turn strategy into tangible deliverables. Each works standalone.
74
+
75
+ ### craft — Build it
76
+
77
+ | Agent | What it produces |
78
+ |-------|-----------------|
79
+ | **Landing Page Builder** | Deployable, conversion-optimized landing pages (React/HTML) |
80
+ | **MVP Scaffolder** | Full-stack prototypes with auth, database, API, deployment |
81
+ | **Component Designer** | Production-grade UI components with variants and accessibility |
82
+ | **Tester** | Strategy-informed testing with Playwright (persona-based QA) |
83
+
84
+ ### document — Write it
85
+
86
+ | Agent | What it produces |
87
+ |-------|-----------------|
88
+ | **Business Writer** | Business plans, SOPs, case studies, executive summaries |
89
+ | **Pitch Deck Writer** | Investor pitch decks, sales proposals (Marp to PDF/PPTX) |
90
+
91
+ ### present — Show it
92
+
93
+ | Agent | What it produces |
94
+ |-------|-----------------|
95
+ | **Slide Designer** | Professional presentations from any strategy output (Marp markdown) |
96
+
97
+ ### studio — Film it
98
+
99
+ | Agent | What it produces |
100
+ |-------|-----------------|
101
+ | **Demo Producer** | Full product demo videos (browser recording + voiceover + composition) |
102
+ | **Clip Maker** | Short social clips for Instagram Reels, TikTok, YouTube Shorts, LinkedIn |
103
+ | **Content Creator** | Branded social media images and short-form videos |
104
+
105
+ ## Orchestration
106
+
107
+ The **pipeline** plugin chains the strategy plugins into an automated workflow. Start it with `/run My business idea` and it walks you through all 14 strategy experts, each building on previous findings.
108
+
109
+ You can also run any single expert directly:
110
+
111
+ ```
112
+ /value-mapper AI tool that helps nurses track patient vitals
113
+ /copywriter Write landing page copy for our course launch
114
+ /landing-page Build from our strategy outputs
115
+ /pitch-deck Create an investor pitch deck
116
+ /product-demo Record a walkthrough of our web app
117
+ ```
118
+
119
+ ## Install
120
+
121
+ ### Interactive (recommended)
122
+
123
+ ```bash
124
+ npx organtic
125
+ ```
126
+
127
+ ### Direct plugin install
128
+
129
+ ```bash
130
+ # Everything
131
+ claude plugin install organtic@Adanmohh/organtic
132
+
133
+ # Just what you need
134
+ claude plugin install validate@Adanmohh/organtic
135
+ claude plugin install launch@Adanmohh/organtic
136
+ claude plugin install craft@Adanmohh/organtic
137
+ ```
138
+
139
+ ## Requirements
140
+
141
+ - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI
142
+ - Optional: [claude-mem](https://github.com/nicobailon/claude-mem) for cross-session memory
143
+ - For studio plugin: Node.js, Playwright, Remotion, ffmpeg, ElevenLabs API key
144
+
145
+ ## Links
146
+
147
+ - [GitHub](https://github.com/Adanmohh/organtic) | [Issues](https://github.com/Adanmohh/organtic/issues)
148
+
149
+ MIT License
package/index.mjs ADDED
@@ -0,0 +1,405 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { execSync } from "child_process";
4
+ import { createInterface } from "readline";
5
+
6
+ const MARKETPLACE_REPO = "Adanmohh/organtic";
7
+ const MARKETPLACE_NAME = "organtic";
8
+
9
+ const PLUGINS = [
10
+ {
11
+ name: "validate",
12
+ desc: "Validate ideas",
13
+ experts: 3,
14
+ agents: "Value Mapper, Business Modeler, Experiment Designer",
15
+ },
16
+ {
17
+ name: "build",
18
+ desc: "Build strategy",
19
+ experts: 5,
20
+ agents: "Product Strategist, Brand Strategist, Growth Designer, Spec Writer, Product Designer",
21
+ },
22
+ {
23
+ name: "launch",
24
+ desc: "Go-to-market",
25
+ experts: 7,
26
+ agents: "Offer Designer, Copywriter, Funnel Architect, Growth Auditor, Media Planner, SEO Strategist, AI Search Optimizer",
27
+ },
28
+ {
29
+ name: "craft",
30
+ desc: "Build deliverables",
31
+ experts: 4,
32
+ agents: "Landing Page Builder, MVP Scaffolder, Component Designer, Tester",
33
+ },
34
+ {
35
+ name: "document",
36
+ desc: "Write documents",
37
+ experts: 2,
38
+ agents: "Business Writer, Pitch Deck Writer",
39
+ },
40
+ {
41
+ name: "present",
42
+ desc: "Create presentations",
43
+ experts: 1,
44
+ agents: "Slide Designer",
45
+ },
46
+ {
47
+ name: "studio",
48
+ desc: "Produce videos",
49
+ experts: 3,
50
+ agents: "Demo Producer, Clip Maker, Content Creator",
51
+ },
52
+ {
53
+ name: "pipeline",
54
+ desc: "Pipeline orchestrator",
55
+ experts: null,
56
+ agents: "Chains 15 strategy experts across validate > build > launch",
57
+ },
58
+ ];
59
+
60
+ // ---------------------------------------------------------------------------
61
+ // Gradient & styling utilities
62
+ // ---------------------------------------------------------------------------
63
+
64
+ function makeGradient(chalk, steps) {
65
+ const colors = [
66
+ [16, 185, 129], // #10b981 green
67
+ [6, 182, 212], // #06b6d4 cyan
68
+ [59, 130, 246], // #3b82f6 blue
69
+ ];
70
+
71
+ const result = [];
72
+ for (let i = 0; i < steps; i++) {
73
+ const t = steps === 1 ? 0 : i / (steps - 1);
74
+ let r, g, b;
75
+ if (t <= 0.5) {
76
+ const lt = t * 2;
77
+ r = Math.round(colors[0][0] + (colors[1][0] - colors[0][0]) * lt);
78
+ g = Math.round(colors[0][1] + (colors[1][1] - colors[0][1]) * lt);
79
+ b = Math.round(colors[0][2] + (colors[1][2] - colors[0][2]) * lt);
80
+ } else {
81
+ const lt = (t - 0.5) * 2;
82
+ r = Math.round(colors[1][0] + (colors[2][0] - colors[1][0]) * lt);
83
+ g = Math.round(colors[1][1] + (colors[2][1] - colors[1][1]) * lt);
84
+ b = Math.round(colors[1][2] + (colors[2][2] - colors[1][2]) * lt);
85
+ }
86
+ result.push(chalk.rgb(r, g, b));
87
+ }
88
+ return result;
89
+ }
90
+
91
+ function gradientText(chalk, text) {
92
+ const colors = makeGradient(chalk, text.length);
93
+ return text.split("").map((ch, i) => colors[i](ch)).join("");
94
+ }
95
+
96
+ function gradientLine(chalk, text, width) {
97
+ const colors = makeGradient(chalk, width);
98
+ return text.split("").map((ch, i) => {
99
+ const ci = Math.min(i, width - 1);
100
+ return colors[ci](ch);
101
+ }).join("");
102
+ }
103
+
104
+ function pad(str, len) {
105
+ const visible = stripAnsi(str);
106
+ const diff = len - visible.length;
107
+ return diff > 0 ? str + " ".repeat(diff) : str;
108
+ }
109
+
110
+ function stripAnsi(str) {
111
+ return str.replace(/\x1b\[[0-9;]*m/g, "");
112
+ }
113
+
114
+ // ---------------------------------------------------------------------------
115
+ // Box drawing
116
+ // ---------------------------------------------------------------------------
117
+
118
+ function box(chalk, lines, { title = "", width = 48, borderColor = null } = {}) {
119
+ const bc = borderColor || ((s) => gradientLine(chalk, s, width + 2));
120
+ const inner = width;
121
+
122
+ const topLeft = bc("\u256d");
123
+ const topRight = bc("\u256e");
124
+ const botLeft = bc("\u2570");
125
+ const botRight = bc("\u256f");
126
+ const horiz = (len) => bc("\u2500".repeat(len));
127
+ const vert = bc("\u2502");
128
+
129
+ const out = [];
130
+
131
+ if (title) {
132
+ const titleStr = ` ${title} `;
133
+ const remaining = inner - titleStr.length;
134
+ out.push(` ${topLeft}${horiz(1)}${bc(titleStr)}${horiz(remaining - 1)}${topRight}`);
135
+ } else {
136
+ out.push(` ${topLeft}${horiz(inner)}${topRight}`);
137
+ }
138
+
139
+ for (const line of lines) {
140
+ out.push(` ${vert}${pad(line, inner)}${vert}`);
141
+ }
142
+
143
+ out.push(` ${botLeft}${horiz(inner)}${botRight}`);
144
+ return out.join("\n");
145
+ }
146
+
147
+ function divider(chalk, { title = "", width = 48, borderColor = null } = {}) {
148
+ const bc = borderColor || ((s) => gradientLine(chalk, s, width + 2));
149
+ const vert = bc("\u2502");
150
+ const leftT = bc("\u251c");
151
+ const rightT = bc("\u2524");
152
+ const horiz = (len) => bc("\u2500".repeat(len));
153
+
154
+ if (title) {
155
+ const titleStr = ` ${title} `;
156
+ const remaining = width - titleStr.length;
157
+ return ` ${leftT}${horiz(1)}${bc(titleStr)}${horiz(remaining - 1)}${rightT}`;
158
+ }
159
+ return ` ${leftT}${horiz(width)}${rightT}`;
160
+ }
161
+
162
+ // ---------------------------------------------------------------------------
163
+ // CLI helpers
164
+ // ---------------------------------------------------------------------------
165
+
166
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
167
+ const ask = (q) => new Promise((r) => rl.question(q, r));
168
+
169
+ function runSilent(cmd) {
170
+ try {
171
+ execSync(cmd, { stdio: "pipe" });
172
+ return true;
173
+ } catch {
174
+ return false;
175
+ }
176
+ }
177
+
178
+ function runVisible(cmd) {
179
+ try {
180
+ execSync(cmd, { stdio: "inherit" });
181
+ return true;
182
+ } catch {
183
+ return false;
184
+ }
185
+ }
186
+
187
+ // ---------------------------------------------------------------------------
188
+ // Main
189
+ // ---------------------------------------------------------------------------
190
+
191
+ async function main() {
192
+ const chalk = (await import("chalk")).default;
193
+ const { default: ora } = await import("ora");
194
+
195
+ const W = 48;
196
+ const g = (s) => gradientLine(chalk, s, W + 2);
197
+ const dim = chalk.dim;
198
+ const bold = chalk.bold.white;
199
+ const green = chalk.rgb(16, 185, 129);
200
+ const cyan = chalk.rgb(6, 182, 212);
201
+ const blue = chalk.rgb(59, 130, 246);
202
+ const red = chalk.rgb(239, 68, 68);
203
+
204
+ // ── Banner ──────────────────────────────────────────────────────────────
205
+
206
+ const dots = gradientText(chalk, "\u25cf \u25cf \u25cf \u25cf \u25cf \u25cf \u25cf \u25cf \u25cf \u25cf");
207
+ const title = gradientText(chalk, "O R G A N T I C");
208
+
209
+ const banner = box(chalk, [
210
+ "",
211
+ ` ${dots}`,
212
+ ` ${title}`,
213
+ "",
214
+ ` ${dim("The AI-native organization.")}`,
215
+ ` ${dim("25 experts from idea to launch.")}`,
216
+ "",
217
+ ], { width: W });
218
+
219
+ console.log();
220
+ console.log(banner);
221
+ console.log();
222
+
223
+ // ── Check Claude CLI ────────────────────────────────────────────────────
224
+
225
+ const cliSpinner = ora({
226
+ text: "Checking Claude Code CLI...",
227
+ color: "cyan",
228
+ }).start();
229
+
230
+ try {
231
+ execSync("claude --version", { stdio: "pipe" });
232
+ cliSpinner.succeed(chalk.dim("Claude Code CLI found"));
233
+ } catch {
234
+ cliSpinner.fail(red("Claude Code CLI not found"));
235
+ console.log();
236
+ console.log(` ${dim("Install it first:")}`);
237
+ console.log(` ${bold("npm install -g @anthropic-ai/claude-code")}`);
238
+ console.log();
239
+ process.exit(1);
240
+ }
241
+
242
+ // ── Pipeline Map ────────────────────────────────────────────────────────
243
+
244
+ const vert = g("\u2502");
245
+
246
+ const mapLines = [];
247
+
248
+ // Top: Strategy Pipeline
249
+ mapLines.push(box(chalk, [
250
+ "",
251
+ ` ${bold("validate")} ${dim("\u2500\u2500\u25b6")} ${bold("build")} ${dim("\u2500\u2500\u25b6")} ${bold("launch")}`,
252
+ ` ${dim("3 experts")} ${dim("5 experts")} ${dim("7 experts")}`,
253
+ "",
254
+ ], { title: "Strategy Pipeline", width: W }));
255
+
256
+ // Divider line for Execution (we'll build a second box)
257
+ const execBox = [];
258
+ execBox.push("");
259
+ execBox.push(` ${bold("craft")} ${bold("document")} ${bold("present")} ${bold("studio")}`);
260
+ execBox.push(` ${dim("4 agents")} ${dim("2 agents")} ${dim("1 agent")} ${dim("3 agents")}`);
261
+ execBox.push("");
262
+
263
+ mapLines.push(box(chalk, execBox, { title: "Execution", width: W }));
264
+
265
+ // Orchestration
266
+ mapLines.push(box(chalk, [
267
+ "",
268
+ ` ${bold("pipeline")} ${dim("\u2014 chains all 15 strategy experts")}`,
269
+ "",
270
+ ], { title: "Orchestration", width: W }));
271
+
272
+ console.log(mapLines.join("\n"));
273
+ console.log();
274
+
275
+ // ── Selection Menu ──────────────────────────────────────────────────────
276
+
277
+ console.log(` ${gradientText(chalk, "Select plugins to install:")}`);
278
+ console.log();
279
+
280
+ console.log(` ${dim("Strategy Pipeline:")}`);
281
+ PLUGINS.slice(0, 3).forEach((p, i) => {
282
+ const num = cyan(`[${i + 1}]`);
283
+ const name = bold(p.name);
284
+ const experts = dim(`${p.experts} experts \u2014 ${p.agents}`);
285
+ console.log(` ${num} ${name} ${experts}`);
286
+ });
287
+
288
+ console.log();
289
+ console.log(` ${dim("Execution:")}`);
290
+ PLUGINS.slice(3, 7).forEach((p, i) => {
291
+ const num = cyan(`[${i + 4}]`);
292
+ const name = bold(p.name);
293
+ const experts = dim(`${p.experts} agent${p.experts > 1 ? "s" : ""} \u2014 ${p.agents}`);
294
+ console.log(` ${num} ${name} ${experts}`);
295
+ });
296
+
297
+ console.log();
298
+ console.log(` ${dim("Orchestration:")}`);
299
+ const pNum = cyan("[8]");
300
+ console.log(` ${pNum} ${bold("pipeline")} ${dim(PLUGINS[7].agents)}`);
301
+
302
+ console.log();
303
+ console.log(` ${green("[A]")} ${bold("All plugins")} ${dim("(recommended)")}`);
304
+ console.log(` ${green("[S]")} ${bold("Strategy only")} ${dim("(validate + build + launch + pipeline)")}`);
305
+ console.log();
306
+
307
+ const choice = await ask(` ${cyan("\u276f")} ${dim("Your choice (1-8, A, S, comma-separated):")} `);
308
+ rl.close();
309
+
310
+ let selected;
311
+ const c = choice.trim().toLowerCase();
312
+ if (c === "a" || c === "") {
313
+ selected = PLUGINS;
314
+ } else if (c === "s") {
315
+ selected = PLUGINS.filter((p) =>
316
+ ["validate", "build", "launch", "pipeline"].includes(p.name)
317
+ );
318
+ } else {
319
+ const indices = choice
320
+ .split(",")
321
+ .map((s) => parseInt(s.trim()) - 1)
322
+ .filter((i) => i >= 0 && i < PLUGINS.length);
323
+ selected = indices.map((i) => PLUGINS[i]);
324
+ }
325
+
326
+ if (selected.length === 0) {
327
+ console.log();
328
+ console.log(` ${dim("No plugins selected. Exiting.")}`);
329
+ process.exit(0);
330
+ }
331
+
332
+ console.log();
333
+ console.log(` ${gradientText(chalk, `Installing ${selected.length} plugin${selected.length > 1 ? "s" : ""}...`)}`);
334
+ console.log();
335
+
336
+ // ── Add Marketplace ─────────────────────────────────────────────────────
337
+
338
+ const mpSpinner = ora({
339
+ text: "Adding Organtic marketplace...",
340
+ color: "cyan",
341
+ }).start();
342
+
343
+ if (runSilent(`claude plugin marketplace add ${MARKETPLACE_REPO}`)) {
344
+ mpSpinner.succeed(dim("Marketplace added"));
345
+ } else {
346
+ mpSpinner.warn(chalk.yellow("Marketplace may already be added"));
347
+ }
348
+
349
+ console.log();
350
+
351
+ // ── Install Plugins ─────────────────────────────────────────────────────
352
+
353
+ let installed = 0;
354
+ let failed = 0;
355
+
356
+ for (const plugin of selected) {
357
+ const spinner = ora({
358
+ text: `Installing ${bold(plugin.name)}...`,
359
+ color: "cyan",
360
+ }).start();
361
+
362
+ const ok = runSilent(`claude plugin install ${plugin.name}@${MARKETPLACE_NAME}`);
363
+
364
+ if (ok) {
365
+ installed++;
366
+ spinner.succeed(`${bold(plugin.name)} ${dim("installed")}`);
367
+ } else {
368
+ failed++;
369
+ spinner.fail(`${red(plugin.name)} ${dim("failed \u2014")} ${dim(`claude plugin install ${plugin.name}@${MARKETPLACE_NAME}`)}`);
370
+ }
371
+ }
372
+
373
+ console.log();
374
+
375
+ // ── Result Summary ──────────────────────────────────────────────────────
376
+
377
+ if (failed === 0) {
378
+ console.log(` ${green("\u2714")} ${bold(`${installed}/${selected.length} plugins installed successfully`)}`);
379
+ } else {
380
+ console.log(` ${green("\u2714")} ${installed} installed ${red("\u2718")} ${failed} failed`);
381
+ }
382
+
383
+ console.log();
384
+
385
+ // ── Getting Started Card ────────────────────────────────────────────────
386
+
387
+ const cyanBorder = (s) => cyan(s);
388
+
389
+ const startCard = box(chalk, [
390
+ "",
391
+ ` ${dim("Start Claude Code:")} ${bold("claude")}`,
392
+ ` ${dim("Run full pipeline:")} ${bold("/pipeline:run")} ${dim("Idea")}`,
393
+ ` ${dim("Autonomous mode:")} ${bold("--autonomous")}`,
394
+ ` ${dim("Single expert:")} ${bold("/value-mapper")} ${dim("Idea")}`,
395
+ "",
396
+ ` ${dim("Optional:")} ${bold("claude plugin install claude-mem")}`,
397
+ ` ${dim("(enables cross-session memory)")}`,
398
+ "",
399
+ ], { title: "Getting Started", width: W, borderColor: cyanBorder });
400
+
401
+ console.log(startCard);
402
+ console.log();
403
+ }
404
+
405
+ main().catch(console.error);
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "organtic",
3
+ "version": "1.0.0",
4
+ "description": "The AI-native organization. 25 experts from idea to launch. Strategy pipeline (validate > build > launch) + execution plugins (craft, document, present, studio). Claude Code plugin ecosystem.",
5
+ "bin": {
6
+ "organtic": "./index.mjs"
7
+ },
8
+ "type": "module",
9
+ "license": "MIT",
10
+ "author": {
11
+ "name": "Adan Mohh",
12
+ "email": "adan@neogrant.fi",
13
+ "url": "https://github.com/Adanmohh"
14
+ },
15
+ "homepage": "https://github.com/Adanmohh/organtic#readme",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/Adanmohh/organtic.git"
19
+ },
20
+ "bugs": {
21
+ "url": "https://github.com/Adanmohh/organtic/issues"
22
+ },
23
+ "keywords": [
24
+ "claude-code",
25
+ "claude",
26
+ "plugin",
27
+ "ai-agents",
28
+ "business-strategy",
29
+ "go-to-market",
30
+ "landing-page",
31
+ "mvp",
32
+ "pitch-deck",
33
+ "product-strategy",
34
+ "marketing",
35
+ "seo",
36
+ "copywriting",
37
+ "growth",
38
+ "validation",
39
+ "anthropic",
40
+ "organtic"
41
+ ],
42
+ "dependencies": {
43
+ "chalk": "^5.4.1",
44
+ "ora": "^8.1.1"
45
+ },
46
+ "engines": {
47
+ "node": ">=18.0.0"
48
+ }
49
+ }