learnship 2.3.4 → 2.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
3
|
"description": "Agentic engineering done right — 57 structured workflows, 17 specialist agent personas, 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": "2.3.
|
|
4
|
+
"version": "2.3.5",
|
|
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 — 57 structured workflows, 17 specialist agent personas, persistent memory across sessions, integrated learning partner, and impeccable UI design system.",
|
|
5
|
-
"version": "2.3.
|
|
5
|
+
"version": "2.3.5",
|
|
6
6
|
"logo": "assets/logo.png",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Favio Vazquez",
|
package/gemini-extension.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
4
4
|
"description": "Agentic engineering done right — 57 structured workflows, 17 specialist agent personas, 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/",
|
|
@@ -696,9 +696,19 @@ Task(
|
|
|
696
696
|
</quality_gate>
|
|
697
697
|
|
|
698
698
|
<output>
|
|
699
|
-
Write to: .planning/research/STACK.md
|
|
700
699
|
Required sections: ## Recommended Stack, ## Alternatives Considered, ## What NOT to Use, ## Versions
|
|
701
700
|
</output>
|
|
701
|
+
|
|
702
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write STACK.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
703
|
+
|
|
704
|
+
Write the research content to `.planning/research/STACK.md` using your write tool now.
|
|
705
|
+
|
|
706
|
+
Then verify:
|
|
707
|
+
```
|
|
708
|
+
node -e "const fs=require('fs');const f='.planning/research/STACK.md';if(!fs.existsSync(f)){console.log('STACK_MISSING');process.exit(1);}console.log('STACK_OK — '+fs.readFileSync(f,'utf8').length+' chars');"
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
If `STACK_MISSING`: write the file and re-run until `STACK_OK`.
|
|
702
712
|
"
|
|
703
713
|
)
|
|
704
714
|
|
|
@@ -744,9 +754,19 @@ Task(
|
|
|
744
754
|
</quality_gate>
|
|
745
755
|
|
|
746
756
|
<output>
|
|
747
|
-
Write to: .planning/research/FEATURES.md
|
|
748
757
|
Required sections: ## Table Stakes, ## Differentiators, ## Anti-Features
|
|
749
758
|
</output>
|
|
759
|
+
|
|
760
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write FEATURES.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
761
|
+
|
|
762
|
+
Write the research content to `.planning/research/FEATURES.md` using your write tool now.
|
|
763
|
+
|
|
764
|
+
Then verify:
|
|
765
|
+
```
|
|
766
|
+
node -e "const fs=require('fs');const f='.planning/research/FEATURES.md';if(!fs.existsSync(f)){console.log('FEATURES_MISSING');process.exit(1);}console.log('FEATURES_OK — '+fs.readFileSync(f,'utf8').length+' chars');"
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
If `FEATURES_MISSING`: write the file and re-run until `FEATURES_OK`.
|
|
750
770
|
"
|
|
751
771
|
)
|
|
752
772
|
|
|
@@ -792,9 +812,19 @@ Task(
|
|
|
792
812
|
</quality_gate>
|
|
793
813
|
|
|
794
814
|
<output>
|
|
795
|
-
Write to: .planning/research/ARCHITECTURE.md
|
|
796
815
|
Required sections: ## Component Boundaries, ## Data Flow, ## Build Order, ## Integration Points
|
|
797
816
|
</output>
|
|
817
|
+
|
|
818
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write ARCHITECTURE.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
819
|
+
|
|
820
|
+
Write the research content to `.planning/research/ARCHITECTURE.md` using your write tool now.
|
|
821
|
+
|
|
822
|
+
Then verify:
|
|
823
|
+
```
|
|
824
|
+
node -e "const fs=require('fs');const f='.planning/research/ARCHITECTURE.md';if(!fs.existsSync(f)){console.log('ARCH_MISSING');process.exit(1);}console.log('ARCH_OK — '+fs.readFileSync(f,'utf8').length+' chars');"
|
|
825
|
+
```
|
|
826
|
+
|
|
827
|
+
If `ARCH_MISSING`: write the file and re-run until `ARCH_OK`.
|
|
798
828
|
"
|
|
799
829
|
)
|
|
800
830
|
|
|
@@ -840,9 +870,19 @@ Task(
|
|
|
840
870
|
</quality_gate>
|
|
841
871
|
|
|
842
872
|
<output>
|
|
843
|
-
Write to: .planning/research/PITFALLS.md
|
|
844
873
|
Required sections: ## Common Mistakes, ## Warning Signs, ## Prevention Strategies
|
|
845
874
|
</output>
|
|
875
|
+
|
|
876
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write PITFALLS.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
877
|
+
|
|
878
|
+
Write the research content to `.planning/research/PITFALLS.md` using your write tool now.
|
|
879
|
+
|
|
880
|
+
Then verify:
|
|
881
|
+
```
|
|
882
|
+
node -e "const fs=require('fs');const f='.planning/research/PITFALLS.md';if(!fs.existsSync(f)){console.log('PITFALLS_MISSING');process.exit(1);}console.log('PITFALLS_OK — '+fs.readFileSync(f,'utf8').length+' chars');"
|
|
883
|
+
```
|
|
884
|
+
|
|
885
|
+
If `PITFALLS_MISSING`: write the file and re-run until `PITFALLS_OK`.
|
|
846
886
|
"
|
|
847
887
|
)
|
|
848
888
|
```
|
|
@@ -880,11 +920,22 @@ Task(
|
|
|
880
920
|
</downstream_consumer>
|
|
881
921
|
|
|
882
922
|
<output>
|
|
883
|
-
Write to: .planning/research/SUMMARY.md
|
|
884
923
|
Required sections: ## Executive Summary, ## Recommended Stack, ## Table Stakes Features, ## Key Architecture Decisions, ## Top Pitfalls, ## Implications for Roadmap, ## Confidence Assessment, ## Gaps
|
|
885
924
|
</output>
|
|
886
925
|
|
|
926
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write SUMMARY.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
927
|
+
|
|
928
|
+
Write the synthesized content to `.planning/research/SUMMARY.md` using your write tool now.
|
|
929
|
+
|
|
930
|
+
Then verify it was written:
|
|
931
|
+
```
|
|
932
|
+
node -e "const fs=require('fs');const f='.planning/research/SUMMARY.md';if(!fs.existsSync(f)){console.log('SUMMARY_MISSING');process.exit(1);}const c=fs.readFileSync(f,'utf8');const secs=['Executive Summary','Recommended Stack','Top Pitfalls','Implications for Roadmap'];const missing=secs.filter(s=>!c.includes(s));if(missing.length){console.log('SUMMARY_INCOMPLETE — missing: '+missing.join(', '));process.exit(1);}console.log('SUMMARY_OK — '+c.length+' chars');"
|
|
933
|
+
```
|
|
934
|
+
|
|
935
|
+
If `SUMMARY_MISSING` or `SUMMARY_INCOMPLETE`: write the file and re-run until `SUMMARY_OK`.
|
|
936
|
+
|
|
887
937
|
<quality_gate>
|
|
938
|
+
- [ ] File physically written to .planning/research/SUMMARY.md (verified by node -e above)
|
|
888
939
|
- [ ] Synthesized, not concatenated — findings are integrated
|
|
889
940
|
- [ ] Opinionated — clear recommendations emerge
|
|
890
941
|
- [ ] Actionable — roadmapper can structure phases from implications
|
|
@@ -139,9 +139,19 @@ Task(
|
|
|
139
139
|
</files_to_read>
|
|
140
140
|
|
|
141
141
|
<output>
|
|
142
|
-
Write to: .planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-RESEARCH.md
|
|
143
142
|
Required sections: ## Don't Hand-Roll, ## Common Pitfalls, ## Existing Patterns in This Codebase, ## Recommended Approach
|
|
144
143
|
</output>
|
|
144
|
+
|
|
145
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write [padded_phase]-RESEARCH.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
146
|
+
|
|
147
|
+
Write the research content to `.planning/phases/[padded_phase]-[phase_slug]/[padded_phase]-RESEARCH.md` using your write tool now.
|
|
148
|
+
|
|
149
|
+
Then verify:
|
|
150
|
+
```
|
|
151
|
+
node -e "const fs=require('fs');const files=fs.readdirSync('.planning/phases/').flatMap(d=>fs.readdirSync('.planning/phases/'+d).filter(f=>f.endsWith('-RESEARCH.md')).map(f=>'.planning/phases/'+d+'/'+f));if(!files.length){console.log('RESEARCH_MISSING');process.exit(1);}console.log('RESEARCH_OK — '+files[files.length-1]);"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
If `RESEARCH_MISSING`: write the file and re-run until `RESEARCH_OK`.
|
|
145
155
|
"
|
|
146
156
|
)
|
|
147
157
|
```
|
|
@@ -225,9 +235,19 @@ Task(
|
|
|
225
235
|
</files_to_read>
|
|
226
236
|
|
|
227
237
|
<output>
|
|
228
|
-
Write to: [phase_dir]/[padded_phase]-01-PLAN.md, [padded_phase]-02-PLAN.md, etc.
|
|
229
238
|
Each plan must have: YAML frontmatter (wave, depends_on, files_modified) + tasks in XML + must_haves section
|
|
230
239
|
</output>
|
|
240
|
+
|
|
241
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write each PLAN.md to disk. Do NOT output plans to the conversation. Do NOT treat this as done until files physically exist on disk.**
|
|
242
|
+
|
|
243
|
+
Write each plan to `[phase_dir]/[padded_phase]-NN-PLAN.md` using your write tool now. Write all plans before reporting done.
|
|
244
|
+
|
|
245
|
+
Then verify:
|
|
246
|
+
```
|
|
247
|
+
node -e "const fs=require('fs');const plans=fs.readdirSync('.').filter(f=>f.endsWith('-PLAN.md'));if(!plans.length){console.log('PLANS_MISSING');process.exit(1);}console.log('PLANS_OK — '+plans.length+' plan(s): '+plans.join(', '));"
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Run that command from inside [phase_dir]. If `PLANS_MISSING`: write the files and re-run until `PLANS_OK`.
|
|
231
251
|
"
|
|
232
252
|
)
|
|
233
253
|
```
|
|
@@ -109,9 +109,19 @@ Task(
|
|
|
109
109
|
</files_to_read>
|
|
110
110
|
|
|
111
111
|
<output>
|
|
112
|
-
Write to: .planning/phases/[padded_phase]-[slug]/[padded_phase]-RESEARCH.md
|
|
113
112
|
Required sections: ## Don't Hand-Roll, ## Common Pitfalls, ## Existing Patterns in This Codebase, ## Recommended Approach
|
|
114
113
|
</output>
|
|
114
|
+
|
|
115
|
+
**WRITE ACTION REQUIRED — You MUST use your file-write tool to write [padded_phase]-RESEARCH.md to disk. Do NOT output the content to the conversation. Do NOT treat this as done until the file physically exists on disk.**
|
|
116
|
+
|
|
117
|
+
Write the research content to `.planning/phases/[padded_phase]-[slug]/[padded_phase]-RESEARCH.md` using your write tool now.
|
|
118
|
+
|
|
119
|
+
Then verify:
|
|
120
|
+
```
|
|
121
|
+
node -e "const fs=require('fs');const files=fs.readdirSync('.planning/phases/').flatMap(d=>fs.readdirSync('.planning/phases/'+d).filter(f=>f.endsWith('-RESEARCH.md')).map(f=>'.planning/phases/'+d+'/'+f));if(!files.length){console.log('RESEARCH_MISSING');process.exit(1);}console.log('RESEARCH_OK — '+files[files.length-1]);"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
If `RESEARCH_MISSING`: write the file and re-run until `RESEARCH_OK`.
|
|
115
125
|
"
|
|
116
126
|
)
|
|
117
127
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "learnship",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
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: 57 spec-driven workflows, 17 specialist agent personas, integrated learning, and production-grade design.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agentic",
|