Install
$ agentstack add skill-kevinkda-schwab-marketdata-skill-schwab-marketdata-workflows-en ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
schwab-marketdata-workflows-en
> License & ToS reminder — Schwab Market Data is non-redistributable. > Every markdown file written by this skill must stay inside the > kevinkda/stock-personal private repository. Each playbook automatically > verifies isPrivate == true against the locally authenticated gh CLI > before writing; if the check fails, the write is refused.
First step on activation (mandatory)
1. get_server_info() — verify server_version falls within compatible_mcp_version
2. Check the relationship between cwd and required_workspace:
- cwd is inside the required_workspace subtree → read + write allowed
- otherwise → only read of target_files; writes refused (prevents
accidentally writing data into another repository)
3. gh repo view kevinkda/stock-personal --json isPrivate -q .isPrivate
- If it returns false / no gh CLI / not logged in → strongly
encourage manual user confirmation; in non-interactive contexts,
stop without writing.
Playbook selection
| User intent | Playbook | | ------------------------------------------ | --------------------------------------------- | | Refresh VOO/QQQ tracker | playbooks/voo-qqq-tracker-update.md | | Refresh watchlist snapshot (monthly/event) | playbooks/watchlist-snapshot.md | | Rewrite summary summary.md | playbooks/summary-md-refresh.md | | Option-chain research (one-off deep dive) | playbooks/option-chain-research.md | | Shakeout 8-signal scan + AI weekly report | playbooks/shakeout-analysis-v2.md |
Universal constraints (every playbook must follow)
- Commit prefix: every commit message produced by this skill must
start with data(schwab): for audit traceability.
- Never commit directly to main: commit on the current
feature/data
branch; if the current cwd is on the main branch, first run git switch -c data/schwab-YYYYMMDD.
- Never push to public: a failed
gh repo view --json isPrivate
check stops the playbook.
- Never
push --force: especially never force-push to main /
mainline.
- Data freshness: when
health_check()returns
token_state != "valid" or token_expires_in_days .md (running again the same day overwrites it) | Typically run once a month; if you need to re-run on the same day → tell the user that today's history snapshot will be overwritten and obtain consent first | | option-chain-research | Fully repeatable | Each run produces a new docs/option-research/-.md (named by today's date); re-running the same symbol on the same day overwrites that day's snapshot but does not pollute prior days | Same symbol same day → ask the user whether to overwrite today's snapshot; different symbol or different day → run directly | | shakeout-analysis-v2 | Once per day | Each run writes research/shakeout-YYYY-MM-DD.md; running again the same day overwrites that report (the optional §10.4 row append is decided manually) | If research/shakeout-$(date +%Y-%m-%d).md already exists → ask the user whether to overwrite; default = skip |
The agent decides immediately after the playbook's pre-flight; when skipping, it calls no Schwab tools (to protect the quota) and only explains why it skipped.
Reference
playbooks/voo-qqq-tracker-update.mdplaybooks/watchlist-snapshot.mdplaybooks/summary-md-refresh.mdplaybooks/option-chain-research.mdplaybooks/shakeout-analysis-v2.md
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kevinkda
- Source: kevinkda/schwab-marketdata-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.