@v587d/capital-generation 2.7.2 → 2.7.4
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/CHANGELOG.md +119 -0
- package/README.md +10 -9
- package/THIRD_PARTY_NOTICES.md +116 -30
- package/capital-config/client.js +4 -4
- package/capital-config/package.json +1 -1
- package/capital-watchlist/package.json +1 -1
- package/chart-ui/package.json +1 -1
- package/lib/web-retriever/local-fetch.d.ts +1 -1
- package/lib/web-retriever/local-fetch.js +1 -1
- package/lib/web-retriever/sources.d.ts +1 -1
- package/lib/web-retriever/sources.js +1 -1
- package/lib/web-retriever/wind-client.d.ts +1 -1
- package/lib/web-retriever/wind-client.js +1 -1
- package/package.json +3 -1
- package/selected-skills/InvestSkill/UPSTREAM.md +9 -0
- package/selected-skills/README.md +6 -1
- package/selected-skills/catalog.js +353 -0
- package/selected-skills/china-stock-research-skills/UPSTREAM.md +2 -1
- package/selected-skills/claude-for-financial-services-cn/LICENSE +201 -0
- package/selected-skills/claude-for-financial-services-cn/UPSTREAM.md +173 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-3-statement-model/SKILL.md +287 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-accrual-schedule/SKILL.md +182 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-audit-xls/SKILL.md +231 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-break-trace/SKILL.md +217 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-catalyst-calendar/SKILL.md +258 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-clean-data-xls/SKILL.md +237 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps/SKILL.md +104 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-comps-analysis/SKILL.md +196 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-dcf/SKILL.md +81 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-dcf-model/SKILL.md +68 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-deal-screening/SKILL.md +212 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-deck-refresh/SKILL.md +221 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-earnings-analysis/SKILL.md +237 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-earnings-preview/SKILL.md +239 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-gl-recon/SKILL.md +232 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-ib-check-deck/SKILL.md +252 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-idea-generation/SKILL.md +277 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-initiating-coverage/SKILL.md +271 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-lbo-model/SKILL.md +273 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-market-data/SKILL.md +229 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-model-update/SKILL.md +219 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-morning-note/SKILL.md +227 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-ppt-template-creator/SKILL.md +231 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-pptx-author/SKILL.md +240 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-roll-forward/SKILL.md +189 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-sector-overview/SKILL.md +257 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-skill-creator/SKILL.md +304 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-tax-loss-harvesting/SKILL.md +200 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-thesis-tracker/SKILL.md +237 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-variance-commentary/SKILL.md +262 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/china-finance/skills/china-xlsx-author/SKILL.md +256 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-accrual-schedule/SKILL.md +190 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-break-trace/SKILL.md +182 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-gl-recon/SKILL.md +200 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-nav-tieout/SKILL.md +233 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-roll-forward/SKILL.md +178 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/fund-admin/skills/china-variance-commentary/SKILL.md +190 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-buyer-list/SKILL.md +198 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-cim-builder/SKILL.md +223 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-competitive-analysis/SKILL.md +233 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-datapack-builder/SKILL.md +232 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-deal-tracker/SKILL.md +151 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-merger-model/SKILL.md +226 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-pitch-deck/SKILL.md +231 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-process-letter/SKILL.md +249 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-strip-profile/SKILL.md +196 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/investment-banking/skills/china-teaser/SKILL.md +235 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/operations/skills/china-kyc-doc-parse/SKILL.md +252 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/operations/skills/china-kyc-rules/SKILL.md +223 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-ai-readiness/SKILL.md +184 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-dd-checklist/SKILL.md +217 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-dd-meeting-prep/SKILL.md +290 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-deal-sourcing/SKILL.md +224 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-ic-memo/SKILL.md +230 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-portfolio-monitoring/SKILL.md +214 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-returns-analysis/SKILL.md +176 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-unit-economics/SKILL.md +192 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/private-equity/skills/china-value-creation-plan/SKILL.md +193 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-client-report/SKILL.md +205 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-client-review/SKILL.md +218 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-financial-plan/SKILL.md +259 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-investment-proposal/SKILL.md +271 -0
- package/selected-skills/claude-for-financial-services-cn/vertical-plugins/wealth-management/skills/china-portfolio-rebalance/SKILL.md +191 -0
- package/selected-skills/investment-skills/UPSTREAM.md +2 -1
- package/selected-skills/peter-lynch-skill/UPSTREAM.md +4 -3
- package/selected-skills/trading-skills/LICENSE +21 -0
- package/selected-skills/trading-skills/UPSTREAM.md +111 -0
- package/selected-skills/trading-skills/skills/catalyst-map/SKILL.md +119 -0
- package/selected-skills/trading-skills/skills/catalyst-map/references/catalyst-framework.md +68 -0
- package/selected-skills/trading-skills/skills/earnings-preview/SKILL.md +124 -0
- package/selected-skills/trading-skills/skills/earnings-preview/references/data-providers.md +26 -0
- package/selected-skills/trading-skills/skills/earnings-preview/references/providers/fmp.md +49 -0
- package/selected-skills/trading-skills/skills/earnings-preview/references/providers/polygon.md +45 -0
- package/selected-skills/trading-skills/skills/earnings-preview/references/providers/tradingeconomics.md +49 -0
- package/selected-skills/trading-skills/skills/earnings-preview/references/relevance-ranking.md +24 -0
- package/selected-skills/trading-skills/skills/earnings-trade-prep/SKILL.md +134 -0
- package/selected-skills/trading-skills/skills/earnings-trade-prep/references/workflow-framework.md +65 -0
- package/selected-skills/trading-skills/skills/evidence-gap-check/SKILL.md +120 -0
- package/selected-skills/trading-skills/skills/evidence-gap-check/references/gap-framework.md +66 -0
- package/selected-skills/trading-skills/skills/execution-plan-check/SKILL.md +121 -0
- package/selected-skills/trading-skills/skills/execution-plan-check/references/execution-checklist.md +70 -0
- package/selected-skills/trading-skills/skills/journal-pattern-analyzer/SKILL.md +120 -0
- package/selected-skills/trading-skills/skills/journal-pattern-analyzer/references/calculation-helpers.md +16 -0
- package/selected-skills/trading-skills/skills/journal-pattern-analyzer/references/pattern-framework.md +74 -0
- package/selected-skills/trading-skills/skills/macro-event-analysis/SKILL.md +122 -0
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/data-providers.md +23 -0
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/interpretation-guide.md +22 -0
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/providers/fmp.md +28 -0
- package/selected-skills/trading-skills/skills/macro-event-analysis/references/providers/tradingeconomics.md +40 -0
- package/selected-skills/trading-skills/skills/market-regime-analysis/SKILL.md +117 -0
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/data-providers.md +26 -0
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/fmp.md +46 -0
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/polygon.md +36 -0
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/providers/tradingeconomics.md +46 -0
- package/selected-skills/trading-skills/skills/market-regime-analysis/references/regime-framework.md +23 -0
- package/selected-skills/trading-skills/skills/portfolio-concentration/SKILL.md +119 -0
- package/selected-skills/trading-skills/skills/portfolio-concentration/references/concentration-framework.md +72 -0
- package/selected-skills/trading-skills/skills/portfolio-risk-review/SKILL.md +126 -0
- package/selected-skills/trading-skills/skills/portfolio-risk-review/references/workflow-framework.md +57 -0
- package/selected-skills/trading-skills/skills/position-management/SKILL.md +120 -0
- package/selected-skills/trading-skills/skills/position-management/references/management-framework.md +70 -0
- package/selected-skills/trading-skills/skills/position-sizing/SKILL.md +83 -0
- package/selected-skills/trading-skills/skills/position-sizing/assets/trade-plan-template.md +15 -0
- package/selected-skills/trading-skills/skills/position-sizing/references/calculation-helpers.md +13 -0
- package/selected-skills/trading-skills/skills/position-sizing/references/methodology.md +28 -0
- package/selected-skills/trading-skills/skills/post-trade-debrief/SKILL.md +99 -0
- package/selected-skills/trading-skills/skills/post-trade-debrief/references/workflow-framework.md +51 -0
- package/selected-skills/trading-skills/skills/post-trade-review/SKILL.md +82 -0
- package/selected-skills/trading-skills/skills/post-trade-review/references/review-rubric.md +34 -0
- package/selected-skills/trading-skills/skills/pre-trade-check/SKILL.md +136 -0
- package/selected-skills/trading-skills/skills/pre-trade-check/references/workflow-framework.md +61 -0
- package/selected-skills/trading-skills/skills/risk-reward-sanity-check/SKILL.md +81 -0
- package/selected-skills/trading-skills/skills/risk-reward-sanity-check/references/calculation-helpers.md +14 -0
- package/selected-skills/trading-skills/skills/risk-reward-sanity-check/references/failure-modes.md +9 -0
- package/selected-skills/trading-skills/skills/thesis-validation/SKILL.md +123 -0
- package/selected-skills/trading-skills/skills/thesis-validation/references/thesis-checklist.md +56 -0
- package/selected-skills/trading-skills/skills/watchlist-review/SKILL.md +119 -0
- package/selected-skills/trading-skills/skills/watchlist-review/references/review-framework.md +57 -0
- package/selected-skills/InvestSkill/ADDING-NEW-SKILLS.md +0 -546
- package/selected-skills/InvestSkill/CHANGELOG.md +0 -373
- package/selected-skills/InvestSkill/CI-CD-GUIDE.md +0 -432
- package/selected-skills/InvestSkill/CLAUDE.md +0 -148
- package/selected-skills/InvestSkill/CONTRIBUTING.md +0 -291
- package/selected-skills/InvestSkill/DEPLOYMENTS.md +0 -321
- package/selected-skills/InvestSkill/FAQ.md +0 -509
- package/selected-skills/InvestSkill/GEMINI.md +0 -419
- package/selected-skills/InvestSkill/PLATFORM-COMPATIBILITY.md +0 -529
- package/selected-skills/InvestSkill/README-claude-code.md +0 -435
- package/selected-skills/InvestSkill/README-cursor.md +0 -475
- package/selected-skills/InvestSkill/README-gemini.md +0 -532
- package/selected-skills/InvestSkill/README-ollama.md +0 -106
- package/selected-skills/InvestSkill/README-zh-TW.md +0 -461
- package/selected-skills/InvestSkill/README.md +0 -311
- package/selected-skills/InvestSkill/RELEASE-QUICK-REFERENCE.md +0 -230
- package/selected-skills/InvestSkill/RELEASE_NOTES.md +0 -121
- package/selected-skills/InvestSkill/SECURITY.md +0 -232
- package/selected-skills/InvestSkill/TODO.md +0 -28
- package/selected-skills/InvestSkill/package.json +0 -64
- package/selected-skills/InvestSkill/plugins/us-stock-analysis/README.md +0 -119
- package/selected-skills/china-stock-research-skills/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
- package/selected-skills/china-stock-research-skills/.github/ISSUE_TEMPLATE/skill_request.md +0 -28
- package/selected-skills/china-stock-research-skills/.github/PULL_REQUEST_TEMPLATE.md +0 -15
- package/selected-skills/china-stock-research-skills/CHANGELOG.md +0 -59
- package/selected-skills/china-stock-research-skills/CONTRIBUTING.md +0 -121
- package/selected-skills/china-stock-research-skills/GITHUB_PUBLISHING.md +0 -259
- package/selected-skills/china-stock-research-skills/INSTALL.md +0 -151
- package/selected-skills/china-stock-research-skills/PUBLISH_CHECKLIST.md +0 -165
- package/selected-skills/china-stock-research-skills/README.en.md +0 -209
- package/selected-skills/china-stock-research-skills/README.md +0 -209
- package/selected-skills/china-stock-research-skills/RELEASE_ASSETS.md +0 -222
- package/selected-skills/china-stock-research-skills/ROADMAP.md +0 -45
- package/selected-skills/china-stock-research-skills/SKILLS.md +0 -85
- package/selected-skills/china-stock-research-skills/examples/full-report-flow.md +0 -20
- package/selected-skills/china-stock-research-skills/examples/module-select-cases.md +0 -26
- package/selected-skills/china-stock-research-skills/examples/quickstart-prompts.md +0 -25
- package/selected-skills/investment-skills/.github/workflows/validate.yml +0 -25
- package/selected-skills/investment-skills/.tbd/config.yml +0 -107
- package/selected-skills/investment-skills/README.md +0 -253
- package/selected-skills/investment-skills/docs/development.md +0 -37
- package/selected-skills/investment-skills/docs/roadmap.md +0 -25
- package/selected-skills/peter-lynch-skill/README.md +0 -305
|
@@ -1,432 +0,0 @@
|
|
|
1
|
-
# InvestSkill Multi-Platform CI/CD Guide
|
|
2
|
-
|
|
3
|
-
This document explains how the automated CI/CD system releases InvestSkill to all supported AI platforms.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The CI/CD pipeline automatically:
|
|
8
|
-
1. **Validates** code quality and structure
|
|
9
|
-
2. **Tests** all 30 analysis frameworks
|
|
10
|
-
3. **Detects** version changes
|
|
11
|
-
4. **Publishes** to multiple platforms
|
|
12
|
-
5. **Records** deployment history
|
|
13
|
-
|
|
14
|
-
### Supported Platforms
|
|
15
|
-
|
|
16
|
-
✅ **Claude Code** — Official plugin marketplace
|
|
17
|
-
✅ **Cursor** — Rules registry (.cursor/rules)
|
|
18
|
-
✅ **Gemini CLI** — Prompt library (GEMINI.md + prompts/)
|
|
19
|
-
✅ **GitHub Copilot** — Workspace instructions (.github/copilot-instructions.md)
|
|
20
|
-
✅ **Any AI Tool** — Universal prompts (prompts/ directory)
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Workflow Architecture
|
|
25
|
-
|
|
26
|
-
### 1. Validation Pipeline (Always Runs)
|
|
27
|
-
|
|
28
|
-
**File**: `.github/workflows/validate.yml`
|
|
29
|
-
**Triggers**: Push to main/develop, Pull Requests
|
|
30
|
-
|
|
31
|
-
Checks:
|
|
32
|
-
- ✅ JSON syntax (marketplace.json, plugin.json)
|
|
33
|
-
- ✅ Required files exist
|
|
34
|
-
- ✅ Plugin structure is valid
|
|
35
|
-
- ✅ SKILL.md frontmatter is correct
|
|
36
|
-
- ✅ Version consistency across files
|
|
37
|
-
- ✅ Unit tests pass
|
|
38
|
-
|
|
39
|
-
### 2. Test Suite (Always Runs)
|
|
40
|
-
|
|
41
|
-
**File**: `.github/workflows/test.yml`
|
|
42
|
-
**Triggers**: Every push and PR
|
|
43
|
-
|
|
44
|
-
Tests:
|
|
45
|
-
- ✅ Every skill directory has a SKILL.md and a matching prompt
|
|
46
|
-
- ✅ Prompt files are valid
|
|
47
|
-
- ✅ Output formats match standards
|
|
48
|
-
- ✅ Signal blocks are properly formatted
|
|
49
|
-
|
|
50
|
-
### 3. Auto-Deploy Workflow (On Version Change)
|
|
51
|
-
|
|
52
|
-
**File**: `.github/workflows/auto-deploy.yml`
|
|
53
|
-
**Triggers**: After successful test suite on main branch
|
|
54
|
-
|
|
55
|
-
Detects version changes in `.claude-plugin/marketplace.json` and automatically:
|
|
56
|
-
|
|
57
|
-
1. **Detect version** — Checks if marketplace version changed
|
|
58
|
-
2. **Validate** — Runs final validation before publishing
|
|
59
|
-
3. **Build packages** — Creates distribution artifacts
|
|
60
|
-
4. **Publish** — Releases to all platforms
|
|
61
|
-
5. **Record** — Updates DEPLOYMENTS.md
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## Release Process
|
|
66
|
-
|
|
67
|
-
### Trigger a Release
|
|
68
|
-
|
|
69
|
-
1. **Bump version** in marketplace and plugin files:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
# Edit .claude-plugin/marketplace.json
|
|
73
|
-
# Change: "version": "X.Y.Z"
|
|
74
|
-
|
|
75
|
-
# Edit plugins/us-stock-analysis/.claude-plugin/plugin.json
|
|
76
|
-
# Change: "version": "X.Y.Z"
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
2. **Update CHANGELOG.md**:
|
|
80
|
-
|
|
81
|
-
```markdown
|
|
82
|
-
## [X.Y.Z] - YYYY-MM-DD
|
|
83
|
-
|
|
84
|
-
### Added
|
|
85
|
-
- Feature description
|
|
86
|
-
|
|
87
|
-
### Changed
|
|
88
|
-
- Change description
|
|
89
|
-
|
|
90
|
-
### Fixed
|
|
91
|
-
- Bug fix description
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
3. **Commit changes**:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
git add .claude-plugin/marketplace.json plugins/us-stock-analysis/.claude-plugin/plugin.json CHANGELOG.md
|
|
98
|
-
git commit -m "chore: bump version to X.Y.Z"
|
|
99
|
-
git push origin main
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
4. **GitHub Actions detects version change** and automatically:
|
|
103
|
-
- Validates everything
|
|
104
|
-
- Publishes to all platforms
|
|
105
|
-
- Updates DEPLOYMENTS.md
|
|
106
|
-
- Creates GitHub release with artifacts
|
|
107
|
-
|
|
108
|
-
### Example Release
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
# Version: 1.4.0
|
|
112
|
-
# Updated: marketplace.json, plugin.json, CHANGELOG.md
|
|
113
|
-
|
|
114
|
-
$ git push origin main
|
|
115
|
-
|
|
116
|
-
# Auto-deploy.yml triggers after tests pass:
|
|
117
|
-
# ✅ Version change detected: 1.3.0 → 1.4.0
|
|
118
|
-
# ✅ Pre-deployment validation passed
|
|
119
|
-
# ✅ Built release packages
|
|
120
|
-
# ✅ Published to Claude Code marketplace
|
|
121
|
-
# ✅ Published Cursor rules
|
|
122
|
-
# ✅ Published Gemini CLI prompts
|
|
123
|
-
# ✅ Generated platform-specific release notes
|
|
124
|
-
# ✅ Recorded deployment in DEPLOYMENTS.md
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## Platform-Specific Publishing
|
|
130
|
-
|
|
131
|
-
### 1. Claude Code Plugin Marketplace
|
|
132
|
-
|
|
133
|
-
**What happens**:
|
|
134
|
-
- GitHub Release created with artifacts
|
|
135
|
-
- `dist/invest-skill-marketplace-X.Y.Z.tar.gz` uploaded
|
|
136
|
-
- `dist/us-stock-analysis-X.Y.Z.tar.gz` uploaded
|
|
137
|
-
- SHA256 checksums generated
|
|
138
|
-
|
|
139
|
-
**Installation**:
|
|
140
|
-
```bash
|
|
141
|
-
/plugin marketplace add yennanliu/InvestSkill
|
|
142
|
-
/plugin install us-stock-analysis
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**Script**: Built-in via GitHub Actions
|
|
146
|
-
**Triggered by**: Version change detection
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
### 2. Cursor Rules Publishing
|
|
151
|
-
|
|
152
|
-
**What happens**:
|
|
153
|
-
- `.cursor/rules/invest-skill.mdc` packaged as `cursor-rules-X.Y.Z.mdc`
|
|
154
|
-
- Metadata JSON created: `cursor-rules-metadata.json`
|
|
155
|
-
- Artifacts included in GitHub release
|
|
156
|
-
|
|
157
|
-
**Installation**:
|
|
158
|
-
```bash
|
|
159
|
-
# Auto-loaded if in InvestSkill repository
|
|
160
|
-
cd InvestSkill && cursor .
|
|
161
|
-
|
|
162
|
-
# Or manually: copy .cursor/rules/invest-skill.mdc to your project
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Script**: `scripts/publish-cursor-rules.js`
|
|
166
|
-
**Triggered by**: `auto-deploy.yml` after successful tests
|
|
167
|
-
|
|
168
|
-
**Registry Integration** (Future):
|
|
169
|
-
- Set `CURSOR_REGISTRY_TOKEN` environment variable
|
|
170
|
-
- Rules will publish to Cursor registry automatically
|
|
171
|
-
- Currently falls back to GitHub release artifacts
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
### 3. Gemini CLI Prompts
|
|
176
|
-
|
|
177
|
-
**What happens**:
|
|
178
|
-
- All prompts (`prompts/*.md`) packaged as `gemini-prompts-X.Y.Z.tar.gz`
|
|
179
|
-
- GEMINI.md configuration included
|
|
180
|
-
- Metadata JSON created: `gemini-metadata.json`
|
|
181
|
-
- Installation guide: `GEMINI-INSTALLATION.md`
|
|
182
|
-
|
|
183
|
-
**Installation**:
|
|
184
|
-
```bash
|
|
185
|
-
cd /path/to/InvestSkill
|
|
186
|
-
gemini
|
|
187
|
-
> @prompts/stock-valuation.md Analyze AAPL
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Script**: `scripts/publish-gemini.js`
|
|
191
|
-
**Triggered by**: `auto-deploy.yml` after successful tests
|
|
192
|
-
|
|
193
|
-
**Registry Integration** (Future):
|
|
194
|
-
- Set `GEMINI_REGISTRY_TOKEN` environment variable
|
|
195
|
-
- Set `GEMINI_REGISTRY_URL` (optional)
|
|
196
|
-
- Prompts will publish to Gemini registry
|
|
197
|
-
- Currently falls back to GitHub release artifacts
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
### 4. GitHub Copilot
|
|
202
|
-
|
|
203
|
-
**What happens**:
|
|
204
|
-
- `.github/copilot-instructions.md` updated in repository
|
|
205
|
-
- Copilot auto-loads instructions when repository is opened
|
|
206
|
-
- Release notes include Copilot setup
|
|
207
|
-
|
|
208
|
-
**Installation**:
|
|
209
|
-
```bash
|
|
210
|
-
# Clone repository
|
|
211
|
-
git clone https://github.com/yennanliu/InvestSkill.git
|
|
212
|
-
cd InvestSkill
|
|
213
|
-
|
|
214
|
-
# Open in VS Code or JetBrains IDE
|
|
215
|
-
code .
|
|
216
|
-
# or
|
|
217
|
-
# Right-click folder → Open with IntelliJ IDEA
|
|
218
|
-
|
|
219
|
-
# Open Copilot Chat (Cmd+K)
|
|
220
|
-
# Copilot auto-loads instructions
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
**What's automated**:
|
|
224
|
-
- No publishing step needed (lives in repository)
|
|
225
|
-
- Auto-updates on every commit
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
### 5. Universal Prompts (Any AI Tool)
|
|
230
|
-
|
|
231
|
-
**What happens**:
|
|
232
|
-
- All prompts packaged as standalone files
|
|
233
|
-
- Users can copy/paste into any AI chat
|
|
234
|
-
- Released as artifacts in GitHub release
|
|
235
|
-
|
|
236
|
-
**Installation**:
|
|
237
|
-
```bash
|
|
238
|
-
# Copy prompt file to clipboard
|
|
239
|
-
cat prompts/stock-valuation.md | pbcopy
|
|
240
|
-
|
|
241
|
-
# Paste into ChatGPT, Claude.ai, etc.
|
|
242
|
-
# Ask: "Analyze AAPL using the framework above"
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
**What's automated**:
|
|
246
|
-
- Included in GitHub release as source files
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## Platform Release Notes
|
|
251
|
-
|
|
252
|
-
The system automatically generates platform-specific release notes:
|
|
253
|
-
|
|
254
|
-
| File | Platform | Purpose |
|
|
255
|
-
|------|----------|---------|
|
|
256
|
-
| CLAUDE-CODE-RELEASE-NOTES.md | Claude Code | Installation & usage for plugin |
|
|
257
|
-
| CURSOR-RELEASE-NOTES.md | Cursor | Installation & usage for rules |
|
|
258
|
-
| GEMINI-RELEASE-NOTES.md | Gemini CLI | Installation & usage for prompts |
|
|
259
|
-
| COPILOT-RELEASE-NOTES.md | Copilot | Installation & usage for workspace |
|
|
260
|
-
| UNIVERSAL-RELEASE-NOTES.md | Any AI | Installation & usage for prompts |
|
|
261
|
-
|
|
262
|
-
**Generated by**: `scripts/generate-platform-release-notes.js`
|
|
263
|
-
**Location**: `dist/` directory
|
|
264
|
-
**Included in**: GitHub release artifacts
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
## Deployment History
|
|
269
|
-
|
|
270
|
-
**File**: `DEPLOYMENTS.md`
|
|
271
|
-
|
|
272
|
-
Auto-updated after each successful release. Shows:
|
|
273
|
-
- Version number
|
|
274
|
-
- Deployment timestamp
|
|
275
|
-
- Commit SHA
|
|
276
|
-
- Number of skills
|
|
277
|
-
- Links to GitHub release and CI run
|
|
278
|
-
- Status for each platform
|
|
279
|
-
|
|
280
|
-
```markdown
|
|
281
|
-
## v1.4.0 — 2026-02-27 15:30 UTC
|
|
282
|
-
|
|
283
|
-
| Field | Value |
|
|
284
|
-
|-------|-------|
|
|
285
|
-
| Version | `1.4.0` |
|
|
286
|
-
| Commit | `a1b2c3d` |
|
|
287
|
-
| Deployed at | 2026-02-27 15:30 UTC |
|
|
288
|
-
| Skills | 18 |
|
|
289
|
-
| Release | [GitHub Release](https://...) |
|
|
290
|
-
|
|
291
|
-
### Marketplace targets
|
|
292
|
-
|
|
293
|
-
| Target | Status | Install |
|
|
294
|
-
|--------|--------|---------|
|
|
295
|
-
| **Claude Code** | ✅ Deployed | `/plugin install us-stock-analysis` |
|
|
296
|
-
| **Cursor** | ✅ Updated | Copy `.cursor/rules/invest-skill.mdc` |
|
|
297
|
-
| **Gemini CLI** | ✅ Updated | Reference `GEMINI.md` |
|
|
298
|
-
| **GitHub Copilot** | ✅ Updated | Auto-applied |
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
---
|
|
302
|
-
|
|
303
|
-
## Environment Variables (For Registry Publishing)
|
|
304
|
-
|
|
305
|
-
Add these to GitHub Secrets to enable direct registry publishing:
|
|
306
|
-
|
|
307
|
-
```
|
|
308
|
-
# Cursor Registry (Optional)
|
|
309
|
-
CURSOR_REGISTRY_TOKEN=<your-cursor-registry-token>
|
|
310
|
-
|
|
311
|
-
# Gemini Registry (Optional)
|
|
312
|
-
GEMINI_REGISTRY_TOKEN=<your-gemini-registry-token>
|
|
313
|
-
GEMINI_REGISTRY_URL=https://registry.gemini.ai (optional)
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
Without these variables, the system falls back to GitHub release artifacts, which still works perfectly.
|
|
317
|
-
|
|
318
|
-
---
|
|
319
|
-
|
|
320
|
-
## Debugging the CI/CD
|
|
321
|
-
|
|
322
|
-
### View Workflow Logs
|
|
323
|
-
|
|
324
|
-
1. Go to: https://github.com/yennanliu/InvestSkill/actions
|
|
325
|
-
2. Click on a workflow run
|
|
326
|
-
3. View logs for each step
|
|
327
|
-
|
|
328
|
-
### Common Issues
|
|
329
|
-
|
|
330
|
-
#### Version not detected
|
|
331
|
-
|
|
332
|
-
```bash
|
|
333
|
-
# Make sure versions match across files:
|
|
334
|
-
jq '.metadata.version' .claude-plugin/marketplace.json
|
|
335
|
-
jq '.version' plugins/us-stock-analysis/.claude-plugin/plugin.json
|
|
336
|
-
|
|
337
|
-
# They must be identical
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
#### Validation failed
|
|
341
|
-
|
|
342
|
-
```bash
|
|
343
|
-
# Run local validation:
|
|
344
|
-
node scripts/test-skills.js
|
|
345
|
-
|
|
346
|
-
# Check JSON:
|
|
347
|
-
jq empty .claude-plugin/marketplace.json
|
|
348
|
-
jq empty plugins/us-stock-analysis/.claude-plugin/plugin.json
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
#### Release artifacts not created
|
|
352
|
-
|
|
353
|
-
```bash
|
|
354
|
-
# Check dist/ directory exists
|
|
355
|
-
mkdir -p dist
|
|
356
|
-
|
|
357
|
-
# Verify tar commands work locally
|
|
358
|
-
tar -czf dist/test.tar.gz .
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## Extending the CI/CD
|
|
364
|
-
|
|
365
|
-
### Add a New Platform
|
|
366
|
-
|
|
367
|
-
1. Create a new script: `scripts/publish-<platform>.js`
|
|
368
|
-
2. Add platform-specific publishing logic
|
|
369
|
-
3. Update `.github/workflows/auto-deploy.yml`:
|
|
370
|
-
```yaml
|
|
371
|
-
- name: Publish to <Platform>
|
|
372
|
-
run: node scripts/publish-<platform>.js
|
|
373
|
-
env:
|
|
374
|
-
PLATFORM_VERSION: ${{ env.VERSION }}
|
|
375
|
-
```
|
|
376
|
-
4. Update record-deploy.js to include new platform
|
|
377
|
-
5. Add platform-specific release notes generation
|
|
378
|
-
|
|
379
|
-
### Add a New Validation Check
|
|
380
|
-
|
|
381
|
-
1. Update `.github/workflows/validate.yml`
|
|
382
|
-
2. Add new check step with validation logic
|
|
383
|
-
3. Exit with error code if validation fails
|
|
384
|
-
|
|
385
|
-
### Add a New Test Suite
|
|
386
|
-
|
|
387
|
-
1. Create test file: `scripts/test-<feature>.js`
|
|
388
|
-
2. Add to `.github/workflows/test.yml`
|
|
389
|
-
3. Run on every commit
|
|
390
|
-
|
|
391
|
-
---
|
|
392
|
-
|
|
393
|
-
## Release Checklist
|
|
394
|
-
|
|
395
|
-
Before bumping version:
|
|
396
|
-
|
|
397
|
-
- [ ] All features complete and tested
|
|
398
|
-
- [ ] CHANGELOG.md updated with details
|
|
399
|
-
- [ ] README.md updated if needed
|
|
400
|
-
- [ ] All platform docs updated (GEMINI.md, etc.)
|
|
401
|
-
- [ ] No uncommitted changes
|
|
402
|
-
- [ ] Tests passing locally
|
|
403
|
-
|
|
404
|
-
When bumping version:
|
|
405
|
-
|
|
406
|
-
- [ ] Update `.claude-plugin/marketplace.json`
|
|
407
|
-
- [ ] Update `plugins/us-stock-analysis/.claude-plugin/plugin.json`
|
|
408
|
-
- [ ] Update CHANGELOG.md
|
|
409
|
-
- [ ] Commit changes to main
|
|
410
|
-
- [ ] Wait for auto-deploy to complete
|
|
411
|
-
- [ ] Verify GitHub release created
|
|
412
|
-
- [ ] Verify DEPLOYMENTS.md updated
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
## Support
|
|
417
|
-
|
|
418
|
-
For CI/CD issues or questions:
|
|
419
|
-
|
|
420
|
-
1. Check workflow logs: https://github.com/yennanliu/InvestSkill/actions
|
|
421
|
-
2. Open an issue: https://github.com/yennanliu/InvestSkill/issues
|
|
422
|
-
3. Check CHANGELOG.md for recent updates
|
|
423
|
-
|
|
424
|
-
---
|
|
425
|
-
|
|
426
|
-
## References
|
|
427
|
-
|
|
428
|
-
- [GitHub Actions Documentation](https://docs.github.com/en/actions)
|
|
429
|
-
- [Claude Code Plugin Development](https://code.claude.com/docs/plugins)
|
|
430
|
-
- [Cursor Rules Guide](https://cursor.sh/docs/rules)
|
|
431
|
-
- [Gemini CLI Documentation](https://gemini.ai/docs)
|
|
432
|
-
- [GitHub Copilot Configuration](https://docs.github.com/en/copilot/managing-copilot/configure-personal-settings)
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Commands
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm test # Run all unit tests (skill/structure + install script)
|
|
9
|
-
npm run test:skills # Skill/structure tests only (270+ checks)
|
|
10
|
-
npm run test:install # install.sh tests (static checks + sandboxed runs)
|
|
11
|
-
npm run validate # Validate prompt file contents and format
|
|
12
|
-
npm run pre-release # Full pre-release check: pre-release-check + validate + test
|
|
13
|
-
npm run verify # Verify local setup is correct
|
|
14
|
-
npm run release:dry-run # Preview release without making changes
|
|
15
|
-
npm run integration-tests # Run integration tests
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Validate JSON manifests manually:
|
|
19
|
-
```bash
|
|
20
|
-
jq empty plugins/us-stock-analysis/.claude-plugin/plugin.json
|
|
21
|
-
jq empty .claude-plugin/marketplace.json
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Architecture
|
|
25
|
-
|
|
26
|
-
InvestSkill is a **prompt-engineering plugin**, not traditional software. There is no application runtime — the "skills" are structured markdown frameworks that guide AI assistants through investment analysis workflows.
|
|
27
|
-
|
|
28
|
-
### Skill Distribution Model
|
|
29
|
-
|
|
30
|
-
Each skill lives in two forms simultaneously:
|
|
31
|
-
|
|
32
|
-
1. **`plugins/us-stock-analysis/skills/<name>/SKILL.md`** — Claude Code form, includes YAML frontmatter (`---\ndescription: ...\n---`) and uses slash command syntax
|
|
33
|
-
2. **`prompts/<name>.md`** — Universal form, identical content but with frontmatter stripped, AI-agnostic (no slash commands)
|
|
34
|
-
|
|
35
|
-
These two files must stay in sync. The `prompts/` version is what Cursor, Gemini CLI, GitHub Copilot, and ChatGPT users access.
|
|
36
|
-
|
|
37
|
-
### Platform Config Files
|
|
38
|
-
|
|
39
|
-
| File | Platform |
|
|
40
|
-
|------|----------|
|
|
41
|
-
| `plugins/us-stock-analysis/.claude-plugin/plugin.json` | Claude Code plugin manifest |
|
|
42
|
-
| `.claude-plugin/marketplace.json` | Claude marketplace listing |
|
|
43
|
-
| `.cursor/rules/invest-skill.mdc` | Cursor IDE auto-loading rules |
|
|
44
|
-
| `.github/copilot-instructions.md` | GitHub Copilot auto-loading |
|
|
45
|
-
| `GEMINI.md` | Gemini CLI auto-loading |
|
|
46
|
-
|
|
47
|
-
### Signal Block Requirement
|
|
48
|
-
|
|
49
|
-
Every SKILL.md and every `prompts/*.md` must close with the standardized Investment Signal section: the box-drawn block (UTF-8 box-drawing characters), followed only by the Score Guide / Confidence / Horizon lines, an optional one-paragraph mapping note, and the `**Disclaimer:**` line. Nothing else may follow the block. `check-skill-contract.js` and Test 5/7 validate the block's presence; the closing order is a convention every skill follows.
|
|
50
|
-
|
|
51
|
-
## Adding a New Skill (12-step process)
|
|
52
|
-
|
|
53
|
-
See `ADDING-NEW-SKILLS.md` for the full walkthrough. Key steps:
|
|
54
|
-
|
|
55
|
-
1. Create `plugins/us-stock-analysis/skills/<name>/SKILL.md` with frontmatter
|
|
56
|
-
2. Create `prompts/<name>.md` — same content, no frontmatter, no platform-specific syntax
|
|
57
|
-
3. Skills are auto-discovered from the `skills/` directory — no changes needed in `plugin.json`
|
|
58
|
-
4. Bump version in **all three**: `plugin.json`, `.claude-plugin/marketplace.json` (both `metadata.version` and the plugin entry), and `package.json` (must match — see Version Consistency Rule)
|
|
59
|
-
5. Update `.cursor/rules/invest-skill.mdc`, `.github/copilot-instructions.md`, `GEMINI.md` (table row + example + directory tree)
|
|
60
|
-
6. Update `README.md` and platform-specific `README-*.md` files (framework table row + count)
|
|
61
|
-
7. **Update the site** (both English and Traditional Chinese — see Site Update Rule)
|
|
62
|
-
8. Add entry to `CHANGELOG.md`
|
|
63
|
-
9. Run `npm run pre-release` (pre-release-check + validate + `npm test`) to confirm all tests pass
|
|
64
|
-
10. Run `npm run build:site` to confirm the site builds and the new skill lands in the right category
|
|
65
|
-
|
|
66
|
-
## Site Update Rule
|
|
67
|
-
|
|
68
|
-
The public site (`site/`) is generated by `site/build/build-site.js` and deployed by CI — the `_site/` output is gitignored, so you commit **source**, not built HTML. **Whenever a skill is added, renamed, or removed, update the site in the same change:**
|
|
69
|
-
|
|
70
|
-
1. **`site/build/build-site.js` → `SKILL_CATEGORIES`** — add the skill to the correct category so it appears in the right group on `skills.html` (an unlisted skill still renders, but falls into a generic "Other" bucket). Keep these categories mirroring the README's framework table.
|
|
71
|
-
2. **`site/content/CHOOSE-A-SKILL.md` and `CHOOSE-A-SKILL-zh-TW.md`** — add a "goal → skill" row so users can discover it (both languages).
|
|
72
|
-
3. **`site/content/COOKBOOK.md` and `COOKBOOK-zh-TW.md`** — update the framework count and, if the skill warrants it, add a usage recipe (both languages).
|
|
73
|
-
4. Per-skill reference pages (`skill-<name>.html`) are auto-generated from `prompts/<name>.md` — no manual page needed.
|
|
74
|
-
5. Run `npm run build:site` and confirm: `All N frameworks` shows the new count, `skill-<name>.html` is generated, and the skill is not stranded under "Other".
|
|
75
|
-
|
|
76
|
-
Always update **both** the English and Traditional Chinese (`-zh-TW`) variants of any site content file you touch.
|
|
77
|
-
|
|
78
|
-
## QA Report Retention Rule
|
|
79
|
-
|
|
80
|
-
The daily site review (`npm run review` / `.github/workflows/site-review.yml`) writes `qa/site_review_YYYYMMDD.md`. **Only the last 5 days are kept** — `scripts/site-review.js` prunes older reports on every run (`RETENTION_DAYS`), and the workflow stages `qa/` with `git add -A` so those deletions land in the same commit. `qa/PROJECT-REVIEW.md` is the hand-written qualitative review and is never pruned.
|
|
81
|
-
|
|
82
|
-
## Install Script Rule
|
|
83
|
-
|
|
84
|
-
`install.sh` is the one-command curl installer (`curl -fsSL .../install.sh | bash -s -- -a <agent>`). It is tested by `scripts/test-install.js` (`npm run test:install`) and by `.github/workflows/install-script.yml`.
|
|
85
|
-
|
|
86
|
-
When you touch `install.sh`:
|
|
87
|
-
|
|
88
|
-
1. **Adding or renaming an agent** means four places, or the tests fail: the `AGENTS` list in `install.sh`, its branch in the per-agent `case` block, its row in `list_agents()`, and the matching entry in `INSTALL_TARGETS` in `site/build/build-site.js` (id + advertised `path`). The parity checks in `scripts/test-install.js` compare all of these.
|
|
89
|
-
2. **Keep it shellcheck-clean** at `--severity=warning` (`shellcheck --severity=warning --shell=bash install.sh`) — CI fails otherwise.
|
|
90
|
-
3. **Never overwrite a user's file.** Existing instruction files are appended to inside the `MARK_BEGIN`/`MARK_END` block, and a second run must leave the tree byte-identical. Both properties are asserted.
|
|
91
|
-
4. `rm -rf` may only ever target the script's own `mktemp -d` directory (`$TMP`). Enforced by both the test suite and the lint job.
|
|
92
|
-
5. The tests run `install.sh` for real in a sandbox with a `curl` test double serving a tarball built from the working tree — no network, but the actual download → extract → copy → wire path executes. `KEEP_INSTALL_TEST_DIR=1` keeps the sandbox for inspection.
|
|
93
|
-
|
|
94
|
-
Documented curl commands in `README*.md` and `site/content/COOKBOOK*.md` are checked too: the URL must be the `raw.githubusercontent.com/yennanliu/InvestSkill/<ref>/install.sh` form and every `-a AGENT` must be a supported agent.
|
|
95
|
-
|
|
96
|
-
## Bring-Your-Own-Data Helpers Rule
|
|
97
|
-
|
|
98
|
-
InvestSkill has **no runtime**: the skills fetch nothing. Two optional, zero-dependency Node scripts exist so a user without a tool-enabled assistant can still paste a primary source — `scripts/fetch-edgar.js` (an EDGAR filing → `data/filings/<TICKER>/` as `.htm`, stripped `.txt`, and a `.json` of header fields) and `scripts/fetch-fundamentals.js` (SEC XBRL companyfacts → `data/fixtures/<TICKER>.md`, same shape as the ZEPH eval fixture). Shared plumbing is `scripts/lib/edgar.js`.
|
|
99
|
-
|
|
100
|
-
- They stay **outside the plugin**, and `npm test` never runs them against the SEC (they need the network) — only their offline suite below; `npm run fetch:edgar` / `fetch:fundamentals` are the only user-facing wiring. Do not add data fetching to any SKILL.md — the skills carry the *recipe* (URLs a tool-enabled host can follow) in `10k-digest`, `financial-report-analyst`, and `fact-check`, and the Data & Accuracy page documents it.
|
|
101
|
-
- **Never commit filings or generated real-ticker packs.** `data/filings/` and `data/fixtures/*` (except the fictional `ZEPH.md`) are ignored via `.gitignore`; real numbers go stale and PDFs bloat a markdown plugin.
|
|
102
|
-
- Save text, not PDFs — the skills consume text. No Playwright / headless-browser dependency.
|
|
103
|
-
- Honour SEC fair access: an identifying `User-Agent` (`EDGAR_USER_AGENT` env) and paced requests (`edgar.js` enforces the interval).
|
|
104
|
-
- **Tests:** `scripts/test-edgar.js` (`npm run test:edgar`, part of `npm test` and the `test.yml` / `pr-check.yml` / `validate.yml` workflows) covers the library in-process and runs both CLIs as subprocesses against the fetch double `scripts/lib/edgar-mock-fetch.js` — no network. Add a route to the double when you add an endpoint; keep the synthetic AAPL facts equal to the real FY2025 figures so the pack stays sanity-checkable. When you change what the helpers fetch, also run them once against a real ticker.
|
|
105
|
-
|
|
106
|
-
## Version Consistency Rule
|
|
107
|
-
|
|
108
|
-
All three version fields must match at all times:
|
|
109
|
-
- `plugins/us-stock-analysis/.claude-plugin/plugin.json` → `"version"`
|
|
110
|
-
- `.claude-plugin/marketplace.json` → `"metadata.version"` (and the plugin entry's `version`)
|
|
111
|
-
- `package.json` → `"version"`
|
|
112
|
-
|
|
113
|
-
Verify with: `jq '.version' plugins/us-stock-analysis/.claude-plugin/plugin.json && jq '.metadata.version' .claude-plugin/marketplace.json && jq '.version' package.json`
|
|
114
|
-
|
|
115
|
-
This is enforced by the consistency checks in `npm test`.
|
|
116
|
-
|
|
117
|
-
## Release Timing Rule
|
|
118
|
-
|
|
119
|
-
Choosing the version number and *when* to cut the release both matter — don't tag prematurely.
|
|
120
|
-
|
|
121
|
-
**Which number to bump (SemVer):**
|
|
122
|
-
- **MINOR** (`1.8.x → 1.9.0`) — a new skill/framework, or a meaningful new capability. (Adding `bear-case` and `position-ladder` were minor bumps.)
|
|
123
|
-
- **PATCH** (`1.9.0 → 1.9.1`) — fixes, doc/site tweaks, prompt refinements with no new skill.
|
|
124
|
-
- **MAJOR** (`1.x → 2.0.0`) — breaking changes to skill names, output contracts, or the plugin layout.
|
|
125
|
-
|
|
126
|
-
**When to stamp the date and tag:**
|
|
127
|
-
- The `## [X.Y.Z] - YYYY-MM-DD` heading in `CHANGELOG.md` must carry the **actual release date**, not the day you started the work. If the ship date is uncertain, keep the changes under `## [Unreleased]` and let the release step stamp the date when the release is actually cut.
|
|
128
|
-
- The git tag `vX.Y.Z` is created by `npm run release` (`release-interactive.js`), which commits the version bump, tags, and triggers CI. **Create the tag at release time — do not tag ahead of merge.** Preview first with `npm run release:dry-run`.
|
|
129
|
-
- Feature work lands on a branch → PR → merge to `main`; the tag/release is cut from `main` once merged. The manifest version can be bumped in the feature branch (tests require CHANGELOG ↔ manifest version parity), but the *tag* waits until the release is genuinely happening.
|
|
130
|
-
- Batch small changes: prefer one clean `1.9.0` release over tagging every intermediate commit. Cut the release when the set of changes is coherent and green (`npm run pre-release` passes).
|
|
131
|
-
|
|
132
|
-
## Framework Count Rule
|
|
133
|
-
|
|
134
|
-
The **advertised framework count** = number of skills in `plugins/us-stock-analysis/skills/` **minus output-only tools** (`report-generator`) **minus alias/redirect stubs** (`fundamental-analysis`, `dcf-valuation`, `research-bundle`). It is currently **30 analysis frameworks** (34 skill directories − 1 output tool − 3 aliases). The classification lives in one place — `scripts/lib/skill-registry.js` (`OUTPUT_TOOLS`, `ALIAS_SKILLS`, `META_SKILLS`) — and is imported by `test-skills.js`, `test-install.js`, `check-skill-contract.js`, and `site/build/build-site.js`. The alias list is mirrored in `install.sh`'s `case` block (the install tests check parity).
|
|
135
|
-
|
|
136
|
-
- Keep this number consistent across `README.md`, `README-zh-TW.md`, `site/content/CHOOSE-A-SKILL(-zh-TW).md`, `site/content/COOKBOOK(-zh-TW).md`, and `plugin.json`'s description.
|
|
137
|
-
- `site/build/build-site.js` derives it automatically (`FRAMEWORK_COUNT`) — never hardcode a count there.
|
|
138
|
-
- Enforced by the consistency checks in `npm test` (stale totals like 18/21 will fail):
|
|
139
|
-
- **Test 11** checks the six site-facing `COUNT_DOCS` for "N frameworks" claims.
|
|
140
|
-
- **Test 13** checks the cross-AI configs (`GEMINI.md`, `.cursor/rules/invest-skill.mdc`, `.github/copilot-instructions.md`) — every prompt must be referenced (a new skill can't be silently omitted from a platform), and every "N frameworks" claim must equal the advertised count. It also checks the COOKBOOK plugin-list skill counts equal the skill-directory count.
|
|
141
|
-
|
|
142
|
-
## Current State
|
|
143
|
-
|
|
144
|
-
- **Version**: 1.12.0 (plugin.json = marketplace.json = package.json)
|
|
145
|
-
- **Skills**: 34 directories in `plugins/us-stock-analysis/skills/` (auto-discovered)
|
|
146
|
-
- **Advertised frameworks**: 30 analysis frameworks (34 − `report-generator` − 3 aliases)
|
|
147
|
-
- **Prompts**: 34 universal files in `prompts/` — **generated** from SKILL.md by `scripts/sync-prompts.js` (never hand-edit them; `--check` runs in `npm test`)
|
|
148
|
-
- **Node**: ≥18.0.0 required
|