learnship 1.9.17 → 1.9.18
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
3
|
"description": "Agentic engineering done right — 42 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system. Works with Claude Code, Windsurf, Cursor, Gemini CLI, OpenCode, and Codex.",
|
|
4
|
-
"version": "1.9.
|
|
4
|
+
"version": "1.9.18",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Favio Vazquez",
|
|
7
7
|
"email": "favio.vazquezp@gmail.com"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "learnship",
|
|
3
3
|
"displayName": "learnship",
|
|
4
4
|
"description": "Agentic engineering done right — 42 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
|
|
5
|
-
"version": "1.9.
|
|
5
|
+
"version": "1.9.18",
|
|
6
6
|
"logo": "assets/logo.png",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Favio Vazquez",
|
package/bin/install.js
CHANGED
|
@@ -501,6 +501,7 @@ function copyDir(srcDir, destDir, pathPrefix, platform) {
|
|
|
501
501
|
let c = fs.readFileSync(src, 'utf8');
|
|
502
502
|
c = replacePaths(c, pathPrefix, platform);
|
|
503
503
|
if (entry.name === 'new-project.md') c = rewriteNewProject(c, platform);
|
|
504
|
+
if (entry.name === 'agents.md') c = rewriteAgentsMd(c, platform, pathPrefix);
|
|
504
505
|
if (platform === 'opencode') c = convertToOpencode(c);
|
|
505
506
|
// gemini agents converted separately; body ${VAR} escaping done there
|
|
506
507
|
fs.writeFileSync(dest, c);
|
|
@@ -529,6 +530,62 @@ function replacePaths(content, pathPrefix, platform) {
|
|
|
529
530
|
return c;
|
|
530
531
|
}
|
|
531
532
|
|
|
533
|
+
/**
|
|
534
|
+
* Rewrite AGENTS.md markers with platform-specific skill invocation instructions.
|
|
535
|
+
* On Windsurf, @agentic-learning and @impeccable are native @skill invocations.
|
|
536
|
+
* On all other platforms there is no @mention dispatch — the AI must be told
|
|
537
|
+
* explicitly where the skill files live and what to do when the user types @skill-name.
|
|
538
|
+
*/
|
|
539
|
+
function rewriteAgentsMd(content, platform, pathPrefix) {
|
|
540
|
+
if (!content.includes('<!-- LEARNSHIP_SKILLS_BLOCK -->')) return content;
|
|
541
|
+
|
|
542
|
+
let block;
|
|
543
|
+
if (platform === 'windsurf') {
|
|
544
|
+
block = `### Learning Partner — \`@agentic-learning\`
|
|
545
|
+
|
|
546
|
+
Windsurf loads \`@agentic-learning\` natively as a skill. When the user (or a workflow) invokes \`@agentic-learning <action>\`, Windsurf automatically routes it to the installed skill.
|
|
547
|
+
|
|
548
|
+
Available actions: \`learn\`, \`quiz\`, \`reflect\`, \`space\`, \`brainstorm\`, \`explain-first\`, \`struggle\`, \`either-or\`, \`interleave\`, \`cognitive-load\`
|
|
549
|
+
|
|
550
|
+
### Design System — \`@impeccable\`
|
|
551
|
+
|
|
552
|
+
Windsurf loads \`@impeccable\` natively as a skill. When the user (or a workflow) invokes \`@impeccable <action>\`, Windsurf automatically routes it to the installed skill.
|
|
553
|
+
|
|
554
|
+
Available actions: \`adapt\`, \`animate\`, \`arrange\`, \`audit\`, \`bolder\`, \`clarify\`, \`colorize\`, \`critique\`, \`delight\`, \`distill\`, \`extract\`, \`frontend-design\`, \`harden\`, \`normalize\`, \`onboard\`, \`optimize\`, \`overdrive\`, \`polish\`, \`quieter\`, \`teach-impeccable\`, \`typeset\``;
|
|
555
|
+
} else {
|
|
556
|
+
// For all non-Windsurf platforms: @mention is not a native dispatch mechanism.
|
|
557
|
+
// The AI must read the skill file directly and execute the instructions inside it.
|
|
558
|
+
// pathPrefix ends with learnship/ — skills are at learnship/skills/
|
|
559
|
+
const skillsPath = pathPrefix + 'skills';
|
|
560
|
+
|
|
561
|
+
block = `### Learning Partner — \`@agentic-learning\`
|
|
562
|
+
|
|
563
|
+
**There is no native @mention skill dispatch on this platform.** When a workflow checkpoint or the user mentions \`@agentic-learning <action>\`, you must:
|
|
564
|
+
|
|
565
|
+
1. Read \`${skillsPath}/agentic-learning/SKILL.md\`
|
|
566
|
+
2. Find the section for the requested action (e.g. \`either-or\`, \`brainstorm\`, \`reflect\`, \`quiz\`, etc.)
|
|
567
|
+
3. Execute those instructions directly in this conversation
|
|
568
|
+
|
|
569
|
+
Available actions: \`learn\`, \`quiz\`, \`reflect\`, \`space\`, \`brainstorm\`, \`explain-first\`, \`struggle\`, \`either-or\`, \`interleave\`, \`cognitive-load\`
|
|
570
|
+
|
|
571
|
+
**Do NOT say "@agentic-learning isn't installed" — it is installed. Read the SKILL.md and run the action.**
|
|
572
|
+
|
|
573
|
+
### Design System — \`@impeccable\`
|
|
574
|
+
|
|
575
|
+
**There is no native @mention skill dispatch on this platform.** When a workflow checkpoint or the user mentions \`@impeccable <action>\`, you must:
|
|
576
|
+
|
|
577
|
+
1. Read \`${skillsPath}/impeccable/SKILL.md\`
|
|
578
|
+
2. Find the section for the requested action (e.g. \`audit\`, \`critique\`, \`polish\`, etc.)
|
|
579
|
+
3. Execute those instructions directly in this conversation
|
|
580
|
+
|
|
581
|
+
Available actions: \`adapt\`, \`animate\`, \`arrange\`, \`audit\`, \`bolder\`, \`clarify\`, \`colorize\`, \`critique\`, \`delight\`, \`distill\`, \`extract\`, \`frontend-design\`, \`harden\`, \`normalize\`, \`onboard\`, \`optimize\`, \`overdrive\`, \`polish\`, \`quieter\`, \`teach-impeccable\`, \`typeset\`
|
|
582
|
+
|
|
583
|
+
**Do NOT say "@impeccable isn't installed" — it is installed. Read the SKILL.md and run the action.**`;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
return content.replace('<!-- LEARNSHIP_SKILLS_BLOCK -->', block);
|
|
587
|
+
}
|
|
588
|
+
|
|
532
589
|
/** Rewrite new-project.md markers with exact platform-specific content at install time */
|
|
533
590
|
function rewriteNewProject(content, platform) {
|
|
534
591
|
const dirName = getDirName(platform);
|
|
@@ -1339,6 +1396,7 @@ if (process.env.LEARNSHIP_TEST_MODE) {
|
|
|
1339
1396
|
parseJsonc,
|
|
1340
1397
|
replacePaths,
|
|
1341
1398
|
rewriteNewProject,
|
|
1399
|
+
rewriteAgentsMd,
|
|
1342
1400
|
installClaudePlugins,
|
|
1343
1401
|
toHomePrefix,
|
|
1344
1402
|
LEARNSHIP_CODEX_MARKER,
|
|
@@ -44,6 +44,32 @@ Always read `STATE.md` and `ROADMAP.md` before any planning or execution operati
|
|
|
44
44
|
- **Goal-backward verification**: Check that `must_haves` are met, not just that tasks ran.
|
|
45
45
|
- **Deferred ideas**: Note things outside current phase scope in the roadmap backlog.
|
|
46
46
|
|
|
47
|
+
## Skills — @agentic-learning and @impeccable
|
|
48
|
+
|
|
49
|
+
**There is no native @mention skill dispatch in Cursor.** When a workflow checkpoint or the user mentions `@agentic-learning <action>` or `@impeccable <action>`, you must read the skill file and execute its instructions directly.
|
|
50
|
+
|
|
51
|
+
### Learning Partner — `@agentic-learning`
|
|
52
|
+
|
|
53
|
+
When `@agentic-learning <action>` is mentioned:
|
|
54
|
+
1. Read `node_modules/learnship/skills/agentic-learning/SKILL.md` (or `learnship/skills/agentic-learning/SKILL.md` if installed locally)
|
|
55
|
+
2. Find the section for the requested action
|
|
56
|
+
3. Execute those instructions in this conversation
|
|
57
|
+
|
|
58
|
+
Available actions: `learn`, `quiz`, `reflect`, `space`, `brainstorm`, `explain-first`, `struggle`, `either-or`, `interleave`, `cognitive-load`
|
|
59
|
+
|
|
60
|
+
**Do NOT say "@agentic-learning isn't installed" — it is installed. Read the SKILL.md and run the action.**
|
|
61
|
+
|
|
62
|
+
### Design System — `@impeccable`
|
|
63
|
+
|
|
64
|
+
When `@impeccable <action>` is mentioned:
|
|
65
|
+
1. Read `node_modules/learnship/skills/impeccable/SKILL.md` (or `learnship/skills/impeccable/SKILL.md` if installed locally)
|
|
66
|
+
2. Find the section for the requested action
|
|
67
|
+
3. Execute those instructions in this conversation
|
|
68
|
+
|
|
69
|
+
Available actions: `adapt`, `animate`, `arrange`, `audit`, `bolder`, `clarify`, `colorize`, `critique`, `delight`, `distill`, `extract`, `frontend-design`, `harden`, `normalize`, `onboard`, `optimize`, `overdrive`, `polish`, `quieter`, `teach-impeccable`, `typeset`
|
|
70
|
+
|
|
71
|
+
**Do NOT say "@impeccable isn't installed" — it is installed. Read the SKILL.md and run the action.**
|
|
72
|
+
|
|
47
73
|
## Parallel Execution
|
|
48
74
|
|
|
49
75
|
Cursor supports real parallel subagents. During `/new-project` setup (Group D), ask:
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.18",
|
|
4
4
|
"description": "Agentic engineering done right — 42 structured workflows, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
|
|
5
5
|
"author": "Favio Vazquez",
|
|
6
6
|
"homepage": "https://faviovazquez.github.io/learnship/",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.18",
|
|
4
4
|
"description": "Learn as you build. Build with intent. — A multi-platform agentic engineering system for Windsurf, Claude Code, Cursor, OpenCode, Gemini CLI, and Codex: spec-driven workflows, integrated learning, and production-grade design.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agentic",
|