Clean non-artifact files from model repo
Browse filesRemove source, build, demo, test, virtualenv, and generated-output files from the Hugging Face model repo while leaving README.md and all existing model/voice artifacts untouched.
This view is limited to 50 files because it contains too many changes. See raw diff
- .DS_Store +0 -0
- .claude/settings.local.json +0 -24
- .claude/skills/audit/SKILL.md +0 -199
- .claude/skills/create-plan/SKILL.md +0 -64
- .claude/skills/create-plan/references/index.md +0 -20
- .claude/skills/create-skill/SKILL.md +0 -557
- .claude/skills/debug/SKILL.md +0 -129
- .claude/skills/deploy/SKILL.md +0 -67
- .claude/skills/documentation/SKILL.md +0 -53
- .claude/skills/documentation/references/index.md +0 -11
- .claude/skills/execute-plan/SKILL.md +0 -103
- .claude/skills/execute-plan/references/index.md +0 -20
- .claude/skills/git-commit/SKILL.md +0 -236
- .claude/skills/git-push/SKILL.md +0 -111
- .claude/skills/markdown/SKILL.md +0 -55
- .claude/skills/markdown/references/index.md +0 -14
- .claude/skills/phase-audit/SKILL.md +0 -77
- .claude/skills/phase-audit/references/index.md +0 -19
- .claude/skills/write-notes/SKILL.md +0 -62
- .claude/skills/write-notes/references/index.md +0 -11
- .github/FUNDING.yml +0 -15
- .gitignore +0 -178
- .venv-coreml/bin/Activate.ps1 +0 -247
- .venv-coreml/bin/activate +0 -69
- .venv-coreml/bin/activate.csh +0 -26
- .venv-coreml/bin/activate.fish +0 -66
- .venv-coreml/bin/convert-caffe2-to-onnx +0 -7
- .venv-coreml/bin/convert-onnx-to-caffe2 +0 -7
- .venv-coreml/bin/csv2rdf +0 -7
- .venv-coreml/bin/csvw2datasette +0 -7
- .venv-coreml/bin/csvw2json +0 -7
- .venv-coreml/bin/csvw2markdown +0 -7
- .venv-coreml/bin/csvw2sqlite +0 -7
- .venv-coreml/bin/csvwdescribe +0 -7
- .venv-coreml/bin/csvwvalidate +0 -7
- .venv-coreml/bin/espeak-phonemizer +0 -7
- .venv-coreml/bin/f2py +0 -7
- .venv-coreml/bin/hf +0 -7
- .venv-coreml/bin/huggingface-cli +0 -7
- .venv-coreml/bin/isympy +0 -7
- .venv-coreml/bin/jsonschema +0 -7
- .venv-coreml/bin/normalizer +0 -7
- .venv-coreml/bin/phonemize +0 -7
- .venv-coreml/bin/pip +0 -8
- .venv-coreml/bin/pip3 +0 -8
- .venv-coreml/bin/pip3.10 +0 -8
- .venv-coreml/bin/pyaml +0 -7
- .venv-coreml/bin/pybabel +0 -7
- .venv-coreml/bin/rdf2dot +0 -7
- .venv-coreml/bin/rdfgraphisomorphism +0 -7
.DS_Store
DELETED
|
Binary file (6.15 kB)
|
|
|
.claude/settings.local.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"permissions": {
|
| 3 |
-
"allow": [
|
| 4 |
-
"Bash(wc -l /Users/mm/Documents/GitHub/kokoro-coreml/test_ane_pipeline.py /Users/mm/Documents/GitHub/kokoro-coreml/export_synthesizers.py /Users/mm/Documents/GitHub/kokoro-coreml/export_*.py /Users/mm/Documents/GitHub/kokoro-coreml/test_*.py)",
|
| 5 |
-
"Bash(wc -l /Users/mm/Documents/GitHub/kokoro-coreml/*.py)",
|
| 6 |
-
"Bash(ls -lh /Users/mm/Documents/GitHub/kokoro-coreml/*.py)",
|
| 7 |
-
"Bash(head -20 /Users/mm/Documents/GitHub/kokoro-coreml/export_*.py)",
|
| 8 |
-
"Bash(grep -l \"def export\" /Users/mm/Documents/GitHub/kokoro-coreml/*.py)",
|
| 9 |
-
"Bash(grep -l \"export_\" /Users/mm/Documents/GitHub/kokoro-coreml/examples/*.py)",
|
| 10 |
-
"Bash(grep -n \"def _load_module_from\" /Users/mm/Documents/GitHub/kokoro-coreml/export_*.py)",
|
| 11 |
-
"Bash(grep -n \"TODO\\\\|FIXME\\\\|XXX\\\\|HACK\\\\|dead\\\\|unused\\\\|deprecated\" /Users/mm/Documents/GitHub/kokoro-coreml/*.py)",
|
| 12 |
-
"Bash(sed -n '24,50p' /Users/mm/Documents/GitHub/kokoro-coreml/export_duration.py)",
|
| 13 |
-
"Bash(sed -n '24,50p' /Users/mm/Documents/GitHub/kokoro-coreml/export_f0n_fixed.py)",
|
| 14 |
-
"Bash(sed -n '38,64p' /Users/mm/Documents/GitHub/kokoro-coreml/export_synthesis_fixed.py)",
|
| 15 |
-
"Bash(grep -rn \"__all__\" /Users/mm/Documents/GitHub/kokoro-coreml/*.py)",
|
| 16 |
-
"Bash(ls -la /Users/mm/Documents/GitHub/kokoro-coreml/export_*.py)",
|
| 17 |
-
"Bash(git rm:*)",
|
| 18 |
-
"Bash(git add:*)",
|
| 19 |
-
"Bash(git commit -m ':*)",
|
| 20 |
-
"Bash(grep -n \"from kokoro._export_utils import\\\\|from.*_export_utils\" /Users/mm/Documents/GitHub/kokoro-coreml/examples/export_coreml.py /Users/mm/Documents/GitHub/kokoro-coreml/export_synth/*.py)",
|
| 21 |
-
"Bash(grep -n \"_load_module_from\\\\|load_kokoro_for_export\" /Users/mm/Documents/GitHub/kokoro-coreml/export_*.py /Users/mm/Documents/GitHub/kokoro-coreml/examples/*.py)"
|
| 22 |
-
]
|
| 23 |
-
}
|
| 24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/audit/SKILL.md
DELETED
|
@@ -1,199 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: audit
|
| 3 |
-
description: Triggered when the user’s message includes the word **audit** (primary routing hook). Findings-first review of the kokoro-coreml repo or a scoped slice (paths, diff, commits)—runs pytest (and optional lint when configured) as mechanical signals, optionally delegates readonly subagents by charter when scope or risk warrants it (**when in doubt, parallelize**), merges and dedupes findings, and assigns A–F grades for architecture, correctness risk, and complexity debt. Do not use when the user wants implementation fixes unless they explicitly ask to fix issues after the audit—for plan-phase checklists against an active plan, prefer phase-audit.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Audit
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Run a **structured, paranoid-friendly** audit focused on **bugs** and **needless complexity** in this **PyTorch → Core ML** repo. The orchestrator **does not** silently rewrite code; it **surfaces** issues with severity, paths, and letter grades.
|
| 11 |
-
|
| 12 |
-
**Posture:** use **judgment**. Narrow scope (few files, small diff, localized
|
| 13 |
-
change) can be a **single-agent** pass. **Whole-repo**, **large diff**, **high
|
| 14 |
-
blast radius**, or **you are unsure** → prefer **multiple readonly subagents in
|
| 15 |
-
parallel** (one turn, several `Task` calls), each with a **narrow charter**, then
|
| 16 |
-
**merge and dedupe** into one report. **When in doubt, use multiple agents.**
|
| 17 |
-
|
| 18 |
-
## Use When
|
| 19 |
-
|
| 20 |
-
- The user’s message includes **`audit`** as a substring (primary trigger)—e.g.
|
| 21 |
-
**audit**, **audit this**, **security audit**, **use the audit skill** (case
|
| 22 |
-
insensitive in normal routing).
|
| 23 |
-
|
| 24 |
-
## Do Not Use When
|
| 25 |
-
|
| 26 |
-
- The user wants **implementation** only—unless they ask for fixes **after**
|
| 27 |
-
the audit lands.
|
| 28 |
-
- The work is **only** validating an `execute-plan` phase against the plan and
|
| 29 |
-
rubric—use **`phase-audit`** instead (this skill is broader).
|
| 30 |
-
|
| 31 |
-
## Scope (ask or infer once)
|
| 32 |
-
|
| 33 |
-
Establish **audit scope** before delegating:
|
| 34 |
-
|
| 35 |
-
| Kind | How to bound |
|
| 36 |
-
| --- | --- |
|
| 37 |
-
| **Whole codebase** | Repo root; subagents apportion by area (`kokoro/`, `examples/`, `coreml/`, `kokoro.js/`, export scripts) or by charter only. |
|
| 38 |
-
| **Paths** | User-provided globs or directories; all charters focus there. |
|
| 39 |
-
| **Git delta** | User provides base (`main`, `origin/main`, tag) or “last N commits”; use `git diff`, `git log -n`, `git diff-tree --name-only`. |
|
| 40 |
-
| **Single feature** | User names flows (e.g. “duration export”, “decoder-only 3s”); map to directories from `README.md` and `README/*.md`. |
|
| 41 |
-
|
| 42 |
-
State the **chosen scope** in the final report header.
|
| 43 |
-
|
| 44 |
-
## Mechanical signals (orchestrator, once)
|
| 45 |
-
|
| 46 |
-
From **repository root**, when the audited surface includes **Python** (default for this repo):
|
| 47 |
-
|
| 48 |
-
1. **`pytest`** — run the test suite when pytest is installed (`python -m pytest` if needed).
|
| 49 |
-
2. **Lint** — only if the repo defines a standard lint command (e.g. in `pyproject.toml` or docs); otherwise skip and note “no configured lint.”
|
| 50 |
-
|
| 51 |
-
Report failures as **P0 / Critical** findings with command output (summarize if
|
| 52 |
-
huge). Do not “fix” unless the user later asks.
|
| 53 |
-
|
| 54 |
-
**Optional:** targeted **`kokoro.js`** checks (`npm test` in `kokoro.js/`) when the
|
| 55 |
-
change touches the JS package; failures are **P0** for that surface.
|
| 56 |
-
|
| 57 |
-
When subagents run, they should assume mechanical checks ran **once**; they
|
| 58 |
-
focus on **review**, not on re-running gates unless a charter requires
|
| 59 |
-
spot-checking a file.
|
| 60 |
-
|
| 61 |
-
## Subagent delegation (use judgment)
|
| 62 |
-
|
| 63 |
-
**When one agent is enough:** tiny or localized scope (e.g. a handful of files,
|
| 64 |
-
one worker, or a single focused diff); low coupling; user asked for a quick
|
| 65 |
-
pass. The orchestrator performs the full charter coverage **solo** (still hit
|
| 66 |
-
architecture, correctness, security/ops, and complexity—just in one pass).
|
| 67 |
-
|
| 68 |
-
**When to parallelize:** whole-repo or multi-package audit; large `git` range;
|
| 69 |
-
security- or money-sensitive paths; queue/cron/webhook/idempotency concerns; or
|
| 70 |
-
**any uncertainty** about depth. **When in doubt, launch parallel subagents.**
|
| 71 |
-
|
| 72 |
-
**If parallelizing:** in **one assistant turn**, launch **up to four**
|
| 73 |
-
`Task` subagents with `readonly: true`, **`subagent_type`:** `generalPurpose`
|
| 74 |
-
(or `explore` when the request is mostly mapping file layout). Use **`model: fast`**
|
| 75 |
-
unless the user asks for maximum depth. You may use **fewer than four** if scope
|
| 76 |
-
is medium (e.g. two agents—correctness+security vs architecture+complexity).
|
| 77 |
-
|
| 78 |
-
Give each subagent:
|
| 79 |
-
|
| 80 |
-
- The **exact scope** (paths, diff summary, or “whole repo”).
|
| 81 |
-
- One **charter** from below (copy the charter text into the task prompt).
|
| 82 |
-
- Instruction: **concrete file paths**, **severity** (P0–P3), **one paragraph
|
| 83 |
-
max per finding**, **no generic advice**.
|
| 84 |
-
|
| 85 |
-
### Charter 1 — Architecture & modules
|
| 86 |
-
|
| 87 |
-
God modules; separation between **export scripts**, **`kokoro/`** library code,
|
| 88 |
-
and **runtime-facing** `coreml/` artifacts; public surfaces; fan-in choke points;
|
| 89 |
-
misplaced orchestration vs model math. Flag files approaching **~1000 LOC** or
|
| 90 |
-
cramming unrelated responsibilities (**repo norm:** well under 1k LOC per file).
|
| 91 |
-
|
| 92 |
-
### Charter 2 — Correctness & reliability
|
| 93 |
-
|
| 94 |
-
Logic bugs; tensor shape mistakes; tracing/export mismatches; numerical drift;
|
| 95 |
-
error paths; swallowed exceptions; **async** misuse in JS if in scope; boundary
|
| 96 |
-
conditions for **static buckets** and Swift-side alignment; Core ML runtime
|
| 97 |
-
assumptions vs actual graphs.
|
| 98 |
-
|
| 99 |
-
### Charter 3 — Security, privacy, operational
|
| 100 |
-
|
| 101 |
-
Secrets in logs or committed credentials; unsafe subprocess usage; obvious **path**
|
| 102 |
-
or **checkpoint** foot-guns; operational mismatches between **documented I/O**
|
| 103 |
-
and code **when relevant to scope**.
|
| 104 |
-
|
| 105 |
-
### Charter 4 — Complexity, duplication, maintainability
|
| 106 |
-
|
| 107 |
-
Needless abstraction; configuration or branching explosion; **duplication with
|
| 108 |
-
drift** between export paths; dead code; **comment/doc lies** vs `README/` or
|
| 109 |
-
`CLAUDE.md`; weak tests; naming that hides behavior.
|
| 110 |
-
|
| 111 |
-
## Consolidation (orchestrator)
|
| 112 |
-
|
| 113 |
-
After **subagents return** or after a **solo** review pass:
|
| 114 |
-
|
| 115 |
-
1. **Dedupe:** merge findings that cite the same root cause or file+theme.
|
| 116 |
-
2. **Severity:** **P0** critical (wrongness, security, data loss, build breaks),
|
| 117 |
-
**P1** high, **P2** medium, **P3** low / hygiene.
|
| 118 |
-
3. **Grades:** assign three letter grades **A–F** using [Grading rubric](#grading-rubric).
|
| 119 |
-
**Overall grade = worst of the three** (if any dimension is **D**, overall
|
| 120 |
-
cannot be **B** or higher—cap at **D** unless you justify an exception in one
|
| 121 |
-
sentence).
|
| 122 |
-
4. **New teammate test:** one line—would a newcomer likely break this area in
|
| 123 |
-
week one? (y/n + why)
|
| 124 |
-
|
| 125 |
-
## Grading rubric
|
| 126 |
-
|
| 127 |
-
Assign **Architecture**, **Correctness risk**, and **Complexity debt** separately.
|
| 128 |
-
|
| 129 |
-
| Grade | Meaning |
|
| 130 |
-
| --- | --- |
|
| 131 |
-
| **A** | Clear boundaries, hard to misuse, simple where it matters, issues are cosmetic. |
|
| 132 |
-
| **B** | Solid with minor debt; a few focused fixes would raise to A. |
|
| 133 |
-
| **C** | Meaningful issues; would block merges in a strict shop without a plan. |
|
| 134 |
-
| **D** | Serious structural or reliability risk; bounded scope but unsafe. |
|
| 135 |
-
| **F** | Unsafe, incomprehensible, or broken; needs pause and redesign or revert. |
|
| 136 |
-
|
| 137 |
-
**Correctness risk** includes likelihood of **latent bugs** and **failure-mode**
|
| 138 |
-
holes—not only existing failing tests.
|
| 139 |
-
|
| 140 |
-
## Output template
|
| 141 |
-
|
| 142 |
-
```text
|
| 143 |
-
## Audit scope
|
| 144 |
-
- ...
|
| 145 |
-
|
| 146 |
-
## Mechanical checks
|
| 147 |
-
- pytest: pass | fail (summary)
|
| 148 |
-
- lint (if configured): pass | fail (summary)
|
| 149 |
-
- kokoro.js tests (if run): ...
|
| 150 |
-
|
| 151 |
-
## Grades
|
| 152 |
-
- Architecture: ?
|
| 153 |
-
- Correctness risk: ?
|
| 154 |
-
- Complexity debt: ?
|
| 155 |
-
- Overall (worst-of-three): ?
|
| 156 |
-
|
| 157 |
-
## Findings (severity order)
|
| 158 |
-
### P0 — Critical
|
| 159 |
-
- ...
|
| 160 |
-
|
| 161 |
-
### P1 — High
|
| 162 |
-
- ...
|
| 163 |
-
|
| 164 |
-
### P2 — Medium
|
| 165 |
-
- ...
|
| 166 |
-
|
| 167 |
-
### P3 — Low
|
| 168 |
-
- ...
|
| 169 |
-
|
| 170 |
-
## Delegation / overlap notes
|
| 171 |
-
- Solo vs N subagents; deduped: ...
|
| 172 |
-
|
| 173 |
-
## Residual risks / what we did not run
|
| 174 |
-
- ...
|
| 175 |
-
|
| 176 |
-
## New teammate test
|
| 177 |
-
- ...
|
| 178 |
-
```
|
| 179 |
-
|
| 180 |
-
## Anti-patterns
|
| 181 |
-
|
| 182 |
-
- **Whole-repo or high-risk audit in a single shallow pass** when depth was
|
| 183 |
-
needed—**when in doubt, parallelize.**
|
| 184 |
-
- **Four subagents for a three-line diff**—wasted latency; judge proportionally.
|
| 185 |
-
- **Findings without paths**—every substantive issue should anchor to a file or
|
| 186 |
-
symbol when possible.
|
| 187 |
-
- **Auto-implementing** during audit when the user only asked for review.
|
| 188 |
-
- **Grade inflation**—if Correctness is **D**, overall is not **B**.
|
| 189 |
-
- **Ignoring mechanical failures**—typecheck/lint red is at least **P0** for
|
| 190 |
-
code health.
|
| 191 |
-
|
| 192 |
-
## Relation to other skills
|
| 193 |
-
|
| 194 |
-
- **`phase-audit`:** plan-phase completion vs rubric and plan checkboxes.
|
| 195 |
-
- **`git-commit`:** post-commit **non-blocking** **`pytest`** + **`HEAD`** diff
|
| 196 |
-
scan only—**not** a substitute for **`audit`** (no full matrix by default, no
|
| 197 |
-
grades, no multi-agent).
|
| 198 |
-
- **`deploy`:** defines what “ship” means here (no Cloudflare scripts); audit does
|
| 199 |
-
not replace user-intent release checks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/create-plan/SKILL.md
DELETED
|
@@ -1,64 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: create-plan
|
| 3 |
-
description: Create an implementation plan for this repo. Use when the user wants a checked-in plan under README/Plans, wants the work scoped into phases, and expects the plan to be built from repo guides and notes first, with Context7 only when current external library or framework behavior materially affects the plan. Do not use for implementing the work, informal brainstorming, or lightweight notes.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Create Plan
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Use this skill to turn a concrete request into a repo-native implementation
|
| 11 |
-
plan. The output is a real plan file under `README/Plans/...`, not a chat-only
|
| 12 |
-
outline.
|
| 13 |
-
|
| 14 |
-
## Use When
|
| 15 |
-
|
| 16 |
-
- The work is large enough to need a real implementation plan.
|
| 17 |
-
- The user wants a plan written into the repo.
|
| 18 |
-
- The implementation needs phases, verification steps, and concrete files.
|
| 19 |
-
|
| 20 |
-
## Do Not Use When
|
| 21 |
-
|
| 22 |
-
- The user wants direct implementation instead of planning.
|
| 23 |
-
- The request is still too vague to scope honestly.
|
| 24 |
-
- The output should be a note, scratchpad, or brainstorm instead of a plan.
|
| 25 |
-
|
| 26 |
-
## Procedure
|
| 27 |
-
|
| 28 |
-
1. Read [references/index.md](references/index.md) first.
|
| 29 |
-
2. Gather repo context in this order:
|
| 30 |
-
- directly related `README/Guides`
|
| 31 |
-
- directly related `README/Notes`
|
| 32 |
-
- `README/Skills` when the work touches plan workflow, skills, or routing
|
| 33 |
-
- neighboring plans in the target `README/Plans/...` subtree
|
| 34 |
-
3. Use Context7 only when the plan depends on current library, framework, or
|
| 35 |
-
API behavior that may have changed.
|
| 36 |
-
4. If Context7 is insufficient, fall back to official vendor docs.
|
| 37 |
-
5. Choose the most specific existing `README/Plans/...` subdirectory that fits
|
| 38 |
-
the work. If none fits cleanly, place the plan in the closest higher-level
|
| 39 |
-
subtree instead of inventing a noisy new folder.
|
| 40 |
-
6. Write the plan with the repo's canonical template and make it implementation
|
| 41 |
-
ready:
|
| 42 |
-
- concrete phases
|
| 43 |
-
- specific files where knowable
|
| 44 |
-
- verification per phase
|
| 45 |
-
- hard requirements
|
| 46 |
-
- rollback or kill switch when relevant
|
| 47 |
-
7. Audit the draft before stopping:
|
| 48 |
-
- no missing policy that an implementer would have to invent
|
| 49 |
-
- no fake certainty where the repo context is incomplete
|
| 50 |
-
- no implementation work performed while planning
|
| 51 |
-
|
| 52 |
-
## Canonical Docs
|
| 53 |
-
|
| 54 |
-
Read [references/index.md](references/index.md) first. It maps the canonical
|
| 55 |
-
workflow guide, the plan template, and the repo references to inspect before
|
| 56 |
-
writing a new plan.
|
| 57 |
-
|
| 58 |
-
## Handoff Rules
|
| 59 |
-
|
| 60 |
-
- Hand off to `execute-plan` only after the plan is checked in and the user
|
| 61 |
-
wants implementation.
|
| 62 |
-
- Hand off to a domain skill only if the planning request narrows into a
|
| 63 |
-
domain-specific technical question that must be answered before the plan can
|
| 64 |
-
be completed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/create-plan/references/index.md
DELETED
|
@@ -1,20 +0,0 @@
|
|
| 1 |
-
# Create Plan References
|
| 2 |
-
|
| 3 |
-
Canonical docs for `create-plan`.
|
| 4 |
-
|
| 5 |
-
- `README/Skills/plan-workflow-skills-guide.md`
|
| 6 |
-
Read first for the shared workflow contract and the required research order.
|
| 7 |
-
- `README/Templates/Plans-template.md`
|
| 8 |
-
Read for the exact structure and required sections of the final plan.
|
| 9 |
-
|
| 10 |
-
Use **`README/Skills/`** when the plan touches repo skills, routing, or skill
|
| 11 |
-
authoring (the workflow guide covers boundaries and progressive disclosure; use
|
| 12 |
-
other files in that folder as canonical skill docs are added). For the live skill
|
| 13 |
-
inventory, inspect `.claude/skills/` (`.cursor/skills` and `.agents/skills` symlink here in this repo).
|
| 14 |
-
|
| 15 |
-
Also inspect:
|
| 16 |
-
|
| 17 |
-
- the most relevant `README/Guides/...` and `README/Notes/...` files for the
|
| 18 |
-
task domain
|
| 19 |
-
- neighboring plans in the target `README/Plans/...` subtree for local style and
|
| 20 |
-
naming patterns
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/create-skill/SKILL.md
DELETED
|
@@ -1,557 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: create-skill
|
| 3 |
-
description: >-
|
| 4 |
-
Guides users through creating effective Agent Skills for Cursor. Use when you
|
| 5 |
-
want to create, write, or author a new skill, or asks about skill structure,
|
| 6 |
-
best practices, or SKILL.md format.
|
| 7 |
-
---
|
| 8 |
-
# Creating Skills in Cursor
|
| 9 |
-
|
| 10 |
-
This skill guides you through creating effective Agent Skills for Cursor. Skills are markdown files that teach the agent how to perform specific tasks: reviewing PRs using team standards, generating commit messages in a preferred format, querying database schemas, or any specialized workflow.
|
| 11 |
-
|
| 12 |
-
## Default: mirror personal skills everywhere
|
| 13 |
-
|
| 14 |
-
When the user wants a **personal (global) skill**—not something checked into a single repo—**treat “create this skill” as “create it for Cursor, Claude Code, Codex, and Agents”** unless they **explicitly** narrow scope (examples: “Cursor only”, “don’t touch ~/.agents”, “repo skill only”).
|
| 15 |
-
|
| 16 |
-
**Mirror targets** (same directory layout: `skill-name/SKILL.md`). Write one canonical `SKILL.md`, then install **identical** copies under:
|
| 17 |
-
|
| 18 |
-
| # | Path | Load by |
|
| 19 |
-
|---|------|--------|
|
| 20 |
-
| 1 | `~/.cursor/skills/skill-name/` | Cursor (personal) |
|
| 21 |
-
| 2 | `~/.claude/skills/skill-name/` | Claude Code (user) |
|
| 22 |
-
| 3 | `~/.codex/skills/skill-name/` | Codex |
|
| 23 |
-
| 4 | `~/.agents/skills/skill-name/` | Agents layouts that read `~/.agents/skills` |
|
| 24 |
-
|
| 25 |
-
`~/.codex/skills/.system/` is bundled—**never** mirror into `.system/`; only into sibling `skill-name/` folders.
|
| 26 |
-
|
| 27 |
-
**Implementation habit:** after authoring `SKILL.md`, run `mkdir -p` for each path above and **copy the same file** (or write once and `cp` to each root). If a directory does not exist yet, create it—avoid leaving a skill in only one tree.
|
| 28 |
-
|
| 29 |
-
## Default: project skills triple mirror (repo)
|
| 30 |
-
|
| 31 |
-
When **creating** a new **project** skill (checked into a repository), **always** install the **same** `SKILL.md` (and any `reference.md` / `scripts/` siblings) in all of:
|
| 32 |
-
|
| 33 |
-
| # | Path | Tool |
|
| 34 |
-
|---|------|------|
|
| 35 |
-
| 1 | `.cursor/skills/skill-name/` | Cursor |
|
| 36 |
-
| 2 | `.claude/skills/skill-name/` | Claude Code |
|
| 37 |
-
| 3 | `.agents/skills/skill-name/` | Codex (Agents convention in this repo) |
|
| 38 |
-
|
| 39 |
-
Skip a path only when the user **explicitly** narrows scope (e.g. “Cursor only in this repo”).
|
| 40 |
-
|
| 41 |
-
**kokoro-coreml:** `.cursor/skills` and `.agents/skills` are **symlinks** to `.claude/skills` (see `ls -la .cursor/skills .agents/skills`). **Edit only** under `.claude/skills/`—Cursor and Agents resolve the same files; do not maintain duplicate trees.
|
| 42 |
-
|
| 43 |
-
**Project skills** (repo) **do not** automatically go under `~/` unless the user asks. In **kokoro-coreml**, adding a skill means creating it under **`.claude/skills/`** only (Cursor/Agents paths are symlinks). In other repos, use the **triple mirror** above—**one** source of truth, identical copies or symlinks.
|
| 44 |
-
|
| 45 |
-
## Before You Begin: Gather Requirements
|
| 46 |
-
|
| 47 |
-
Before creating a skill, gather essential information from the user about:
|
| 48 |
-
|
| 49 |
-
1. **Purpose and scope**: What specific task or workflow should this skill help with?
|
| 50 |
-
2. **Target location**: **Personal** → default [mirror everywhere](#default-mirror-personal-skills-everywhere). **Project** → default [triple mirror](#default-project-skills-triple-mirror-repo) (`.cursor/`, `.claude/`, `.agents/`); do not install under `~/` unless the user asks. Confirm any explicit **single-tool** exception before skipping a mirror path.
|
| 51 |
-
3. **Trigger scenarios**: When should the agent automatically apply this skill?
|
| 52 |
-
4. **Key domain knowledge**: What specialized information does the agent need that it wouldn't already know?
|
| 53 |
-
5. **Output format preferences**: Are there specific templates, formats, or styles required?
|
| 54 |
-
6. **Existing patterns**: Are there existing examples or conventions to follow?
|
| 55 |
-
|
| 56 |
-
### Inferring from Context
|
| 57 |
-
|
| 58 |
-
If you have previous conversation context, infer the skill from what was discussed. You can create skills based on workflows, patterns, or domain knowledge that emerged in the conversation.
|
| 59 |
-
|
| 60 |
-
### Gathering Additional Information
|
| 61 |
-
|
| 62 |
-
If you need clarification, use the AskQuestion tool when available:
|
| 63 |
-
|
| 64 |
-
```
|
| 65 |
-
Example AskQuestion usage:
|
| 66 |
-
- "Where should this skill be stored?" with options like ["Personal—mirror Cursor + Claude + Codex + ~/.agents (default)", "Project—triple mirror .cursor + .claude + .agents (default)", "Single-tool exception (explicit)"]
|
| 67 |
-
- "Should this skill include executable scripts?" with options like ["Yes", "No"]
|
| 68 |
-
```
|
| 69 |
-
|
| 70 |
-
If the AskQuestion tool is not available, ask these questions conversationally.
|
| 71 |
-
|
| 72 |
-
---
|
| 73 |
-
|
| 74 |
-
## Skill File Structure
|
| 75 |
-
|
| 76 |
-
### Directory Layout
|
| 77 |
-
|
| 78 |
-
Skills are stored as directories containing a `SKILL.md` file:
|
| 79 |
-
|
| 80 |
-
```
|
| 81 |
-
skill-name/
|
| 82 |
-
├── SKILL.md # Required - main instructions
|
| 83 |
-
├── reference.md # Optional - detailed documentation
|
| 84 |
-
├── examples.md # Optional - usage examples
|
| 85 |
-
└── scripts/ # Optional - utility scripts
|
| 86 |
-
├── validate.py
|
| 87 |
-
└── helper.sh
|
| 88 |
-
```
|
| 89 |
-
|
| 90 |
-
### Storage Locations
|
| 91 |
-
|
| 92 |
-
| Type | Path | Scope |
|
| 93 |
-
|------|------|-------|
|
| 94 |
-
| Personal | ~/.cursor/skills/skill-name/ | Available across all your projects |
|
| 95 |
-
| Project | .cursor/skills/skill-name/ | Cursor (repo; shared with team) |
|
| 96 |
-
| Project | .claude/skills/skill-name/ | Claude Code (repo; shared with team) |
|
| 97 |
-
| Project | .agents/skills/skill-name/ | Codex / Agents (repo; **same** files as `.claude` when symlinked) |
|
| 98 |
-
|
| 99 |
-
**Project default:** When adding a new checked-in skill, create it in **Cursor**, **Claude Code**, and **Codex** locations above (see [Default: project skills triple mirror (repo)](#default-project-skills-triple-mirror-repo)).
|
| 100 |
-
|
| 101 |
-
**IMPORTANT**: Never create **your** skills in `~/.cursor/skills-cursor/`. That directory is for Cursor-shipped defaults (including this `create-skill` document). Cursor may replace files there on upgrade—if you customize something under `skills-cursor`, keep a backup or maintain your own copy under `~/.cursor/skills/`.
|
| 102 |
-
|
| 103 |
-
### Same skill in Claude Code, Codex, or Agents
|
| 104 |
-
|
| 105 |
-
Other assistants use their own user-level trees (same layout: `skill-name/SKILL.md`):
|
| 106 |
-
|
| 107 |
-
| Tool | Typical user skills path | Notes |
|
| 108 |
-
|------|--------------------------|--------|
|
| 109 |
-
| Claude Code | ~/.claude/skills/skill-name/ | Repo-specific skills can also live in `.claude/skills/` inside a project |
|
| 110 |
-
| Codex | ~/.codex/skills/skill-name/ | Often alongside `~/.codex/skills/.system/` (bundled); do not edit `.system` |
|
| 111 |
-
| Agents | ~/.agents/skills/skill-name/ | Separate tree from Codex; not every install has it |
|
| 112 |
-
|
| 113 |
-
For **personal** skills, follow [Default: mirror personal skills everywhere](#default-mirror-personal-skills-everywhere): **repo-agnostic** text when the skill should work in any checkout, then **identical `SKILL.md`** in each user-level path (not “on request”—**unless** the user opted out of a tool).
|
| 114 |
-
|
| 115 |
-
### SKILL.md Structure
|
| 116 |
-
|
| 117 |
-
Every skill requires a `SKILL.md` file with YAML frontmatter and markdown body:
|
| 118 |
-
|
| 119 |
-
```markdown
|
| 120 |
-
---
|
| 121 |
-
name: your-skill-name
|
| 122 |
-
description: Brief description of what this skill does and when to use it
|
| 123 |
-
---
|
| 124 |
-
|
| 125 |
-
# Your Skill Name
|
| 126 |
-
|
| 127 |
-
## Instructions
|
| 128 |
-
Clear, step-by-step guidance for the agent.
|
| 129 |
-
|
| 130 |
-
## Examples
|
| 131 |
-
Concrete examples of using this skill.
|
| 132 |
-
```
|
| 133 |
-
|
| 134 |
-
### Required Metadata Fields
|
| 135 |
-
|
| 136 |
-
| Field | Requirements | Purpose |
|
| 137 |
-
|-------|--------------|---------|
|
| 138 |
-
| `name` | Max 64 chars, lowercase letters/numbers/hyphens only | Unique identifier for the skill |
|
| 139 |
-
| `description` | Max 1024 chars, non-empty | Helps agent decide when to apply the skill |
|
| 140 |
-
|
| 141 |
-
---
|
| 142 |
-
|
| 143 |
-
## Writing Effective Descriptions
|
| 144 |
-
|
| 145 |
-
The description is **critical** for skill discovery. The agent uses it to decide when to apply your skill.
|
| 146 |
-
|
| 147 |
-
### Description Best Practices
|
| 148 |
-
|
| 149 |
-
1. **Write in third person** (the description is injected into the system prompt):
|
| 150 |
-
- ✅ Good: "Processes Excel files and generates reports"
|
| 151 |
-
- ❌ Avoid: "I can help you process Excel files"
|
| 152 |
-
- ❌ Avoid: "You can use this to process Excel files"
|
| 153 |
-
|
| 154 |
-
2. **Be specific and include trigger terms**:
|
| 155 |
-
- ✅ Good: "Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction."
|
| 156 |
-
- ❌ Vague: "Helps with documents"
|
| 157 |
-
|
| 158 |
-
3. **Include both WHAT and WHEN**:
|
| 159 |
-
- WHAT: What the skill does (specific capabilities)
|
| 160 |
-
- WHEN: When the agent should use it (trigger scenarios)
|
| 161 |
-
|
| 162 |
-
### Description Examples
|
| 163 |
-
|
| 164 |
-
```yaml
|
| 165 |
-
# PDF Processing
|
| 166 |
-
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
|
| 167 |
-
|
| 168 |
-
# Excel Analysis
|
| 169 |
-
description: Analyze Excel spreadsheets, create pivot tables, generate charts. Use when analyzing Excel files, spreadsheets, tabular data, or .xlsx files.
|
| 170 |
-
|
| 171 |
-
# Git Commit Helper
|
| 172 |
-
description: Generate descriptive commit messages by analyzing git diffs. Use when the user asks for help writing commit messages or reviewing staged changes.
|
| 173 |
-
|
| 174 |
-
# Code Review
|
| 175 |
-
description: Review code for quality, security, and best practices following team standards. Use when reviewing pull requests, code changes, or when the user asks for a code review.
|
| 176 |
-
```
|
| 177 |
-
|
| 178 |
-
---
|
| 179 |
-
|
| 180 |
-
## Core Authoring Principles
|
| 181 |
-
|
| 182 |
-
### 1. Concise is Key
|
| 183 |
-
|
| 184 |
-
The context window is shared with conversation history, other skills, and requests. Every token competes for space.
|
| 185 |
-
|
| 186 |
-
**Default assumption**: The agent is already very smart. Only add context it doesn't already have.
|
| 187 |
-
|
| 188 |
-
Challenge each piece of information:
|
| 189 |
-
- "Does the agent really need this explanation?"
|
| 190 |
-
- "Can I assume the agent knows this?"
|
| 191 |
-
- "Does this paragraph justify its token cost?"
|
| 192 |
-
|
| 193 |
-
**Good (concise)**:
|
| 194 |
-
```markdown
|
| 195 |
-
## Extract PDF text
|
| 196 |
-
|
| 197 |
-
Use pdfplumber for text extraction:
|
| 198 |
-
|
| 199 |
-
\`\`\`python
|
| 200 |
-
import pdfplumber
|
| 201 |
-
|
| 202 |
-
with pdfplumber.open("file.pdf") as pdf:
|
| 203 |
-
text = pdf.pages[0].extract_text()
|
| 204 |
-
\`\`\`
|
| 205 |
-
```
|
| 206 |
-
|
| 207 |
-
**Bad (verbose)**:
|
| 208 |
-
```markdown
|
| 209 |
-
## Extract PDF text
|
| 210 |
-
|
| 211 |
-
PDF (Portable Document Format) files are a common file format that contains
|
| 212 |
-
text, images, and other content. To extract text from a PDF, you'll need to
|
| 213 |
-
use a library. There are many libraries available for PDF processing, but we
|
| 214 |
-
recommend pdfplumber because it's easy to use and handles most cases well...
|
| 215 |
-
```
|
| 216 |
-
|
| 217 |
-
### 2. Keep SKILL.md Under 500 Lines
|
| 218 |
-
|
| 219 |
-
For optimal performance, the main SKILL.md file should be concise. Use progressive disclosure for detailed content.
|
| 220 |
-
|
| 221 |
-
### 3. Progressive Disclosure
|
| 222 |
-
|
| 223 |
-
Put essential information in SKILL.md; detailed reference material in separate files that the agent reads only when needed.
|
| 224 |
-
|
| 225 |
-
```markdown
|
| 226 |
-
# PDF Processing
|
| 227 |
-
|
| 228 |
-
## Quick start
|
| 229 |
-
[Essential instructions here]
|
| 230 |
-
|
| 231 |
-
## Additional resources
|
| 232 |
-
- For complete API details, see [reference.md](reference.md)
|
| 233 |
-
- For usage examples, see [examples.md](examples.md)
|
| 234 |
-
```
|
| 235 |
-
|
| 236 |
-
**Keep references one level deep** - link directly from SKILL.md to reference files. Deeply nested references may result in partial reads.
|
| 237 |
-
|
| 238 |
-
### 4. Set Appropriate Degrees of Freedom
|
| 239 |
-
|
| 240 |
-
Match specificity to the task's fragility:
|
| 241 |
-
|
| 242 |
-
| Freedom Level | When to Use | Example |
|
| 243 |
-
|---------------|-------------|---------|
|
| 244 |
-
| **High** (text instructions) | Multiple valid approaches, context-dependent | Code review guidelines |
|
| 245 |
-
| **Medium** (pseudocode/templates) | Preferred pattern with acceptable variation | Report generation |
|
| 246 |
-
| **Low** (specific scripts) | Fragile operations, consistency critical | Database migrations |
|
| 247 |
-
|
| 248 |
-
---
|
| 249 |
-
|
| 250 |
-
## Common Patterns
|
| 251 |
-
|
| 252 |
-
### Template Pattern
|
| 253 |
-
|
| 254 |
-
Provide output format templates:
|
| 255 |
-
|
| 256 |
-
```markdown
|
| 257 |
-
## Report structure
|
| 258 |
-
|
| 259 |
-
Use this template:
|
| 260 |
-
|
| 261 |
-
\`\`\`markdown
|
| 262 |
-
# [Analysis Title]
|
| 263 |
-
|
| 264 |
-
## Executive summary
|
| 265 |
-
[One-paragraph overview of key findings]
|
| 266 |
-
|
| 267 |
-
## Key findings
|
| 268 |
-
- Finding 1 with supporting data
|
| 269 |
-
- Finding 2 with supporting data
|
| 270 |
-
|
| 271 |
-
## Recommendations
|
| 272 |
-
1. Specific actionable recommendation
|
| 273 |
-
2. Specific actionable recommendation
|
| 274 |
-
\`\`\`
|
| 275 |
-
```
|
| 276 |
-
|
| 277 |
-
### Examples Pattern
|
| 278 |
-
|
| 279 |
-
For skills where output quality depends on seeing examples:
|
| 280 |
-
|
| 281 |
-
```markdown
|
| 282 |
-
## Commit message format
|
| 283 |
-
|
| 284 |
-
**Example 1:**
|
| 285 |
-
Input: Added user authentication with JWT tokens
|
| 286 |
-
Output:
|
| 287 |
-
\`\`\`
|
| 288 |
-
feat(auth): implement JWT-based authentication
|
| 289 |
-
|
| 290 |
-
Add login endpoint and token validation middleware
|
| 291 |
-
\`\`\`
|
| 292 |
-
|
| 293 |
-
**Example 2:**
|
| 294 |
-
Input: Fixed bug where dates displayed incorrectly
|
| 295 |
-
Output:
|
| 296 |
-
\`\`\`
|
| 297 |
-
fix(reports): correct date formatting in timezone conversion
|
| 298 |
-
|
| 299 |
-
Use UTC timestamps consistently across report generation
|
| 300 |
-
\`\`\`
|
| 301 |
-
```
|
| 302 |
-
|
| 303 |
-
### Workflow Pattern
|
| 304 |
-
|
| 305 |
-
Break complex operations into clear steps with checklists:
|
| 306 |
-
|
| 307 |
-
```markdown
|
| 308 |
-
## Form filling workflow
|
| 309 |
-
|
| 310 |
-
Copy this checklist and track progress:
|
| 311 |
-
|
| 312 |
-
\`\`\`
|
| 313 |
-
Task Progress:
|
| 314 |
-
- [ ] Step 1: Analyze the form
|
| 315 |
-
- [ ] Step 2: Create field mapping
|
| 316 |
-
- [ ] Step 3: Validate mapping
|
| 317 |
-
- [ ] Step 4: Fill the form
|
| 318 |
-
- [ ] Step 5: Verify output
|
| 319 |
-
\`\`\`
|
| 320 |
-
|
| 321 |
-
**Step 1: Analyze the form**
|
| 322 |
-
Run: \`python scripts/analyze_form.py input.pdf\`
|
| 323 |
-
...
|
| 324 |
-
```
|
| 325 |
-
|
| 326 |
-
### Conditional Workflow Pattern
|
| 327 |
-
|
| 328 |
-
Guide through decision points:
|
| 329 |
-
|
| 330 |
-
```markdown
|
| 331 |
-
## Document modification workflow
|
| 332 |
-
|
| 333 |
-
1. Determine the modification type:
|
| 334 |
-
|
| 335 |
-
**Creating new content?** → Follow "Creation workflow" below
|
| 336 |
-
**Editing existing content?** → Follow "Editing workflow" below
|
| 337 |
-
|
| 338 |
-
2. Creation workflow:
|
| 339 |
-
- Use docx-js library
|
| 340 |
-
- Build document from scratch
|
| 341 |
-
...
|
| 342 |
-
```
|
| 343 |
-
|
| 344 |
-
### Feedback Loop Pattern
|
| 345 |
-
|
| 346 |
-
For quality-critical tasks, implement validation loops:
|
| 347 |
-
|
| 348 |
-
```markdown
|
| 349 |
-
## Document editing process
|
| 350 |
-
|
| 351 |
-
1. Make your edits
|
| 352 |
-
2. **Validate immediately**: \`python scripts/validate.py output/\`
|
| 353 |
-
3. If validation fails:
|
| 354 |
-
- Review the error message
|
| 355 |
-
- Fix the issues
|
| 356 |
-
- Run validation again
|
| 357 |
-
4. **Only proceed when validation passes**
|
| 358 |
-
```
|
| 359 |
-
|
| 360 |
-
---
|
| 361 |
-
|
| 362 |
-
## Utility Scripts
|
| 363 |
-
|
| 364 |
-
Pre-made scripts offer advantages over generated code:
|
| 365 |
-
- More reliable than generated code
|
| 366 |
-
- Save tokens (no code in context)
|
| 367 |
-
- Save time (no code generation)
|
| 368 |
-
- Ensure consistency across uses
|
| 369 |
-
|
| 370 |
-
```markdown
|
| 371 |
-
## Utility scripts
|
| 372 |
-
|
| 373 |
-
**analyze_form.py**: Extract all form fields from PDF
|
| 374 |
-
\`\`\`bash
|
| 375 |
-
python scripts/analyze_form.py input.pdf > fields.json
|
| 376 |
-
\`\`\`
|
| 377 |
-
|
| 378 |
-
**validate.py**: Check for errors
|
| 379 |
-
\`\`\`bash
|
| 380 |
-
python scripts/validate.py fields.json
|
| 381 |
-
# Returns: "OK" or lists conflicts
|
| 382 |
-
\`\`\`
|
| 383 |
-
```
|
| 384 |
-
|
| 385 |
-
Make clear whether the agent should **execute** the script (most common) or **read** it as reference.
|
| 386 |
-
|
| 387 |
-
---
|
| 388 |
-
|
| 389 |
-
## Anti-Patterns to Avoid
|
| 390 |
-
|
| 391 |
-
### 1. Windows-Style Paths
|
| 392 |
-
- ✅ Use: `scripts/helper.py`
|
| 393 |
-
- ❌ Avoid: `scripts\helper.py`
|
| 394 |
-
|
| 395 |
-
### 2. Too Many Options
|
| 396 |
-
```markdown
|
| 397 |
-
# Bad - confusing
|
| 398 |
-
"You can use pypdf, or pdfplumber, or PyMuPDF, or..."
|
| 399 |
-
|
| 400 |
-
# Good - provide a default with escape hatch
|
| 401 |
-
"Use pdfplumber for text extraction.
|
| 402 |
-
For scanned PDFs requiring OCR, use pdf2image with pytesseract instead."
|
| 403 |
-
```
|
| 404 |
-
|
| 405 |
-
### 3. Time-Sensitive Information
|
| 406 |
-
```markdown
|
| 407 |
-
# Bad - will become outdated
|
| 408 |
-
"If you're doing this before August 2025, use the old API."
|
| 409 |
-
|
| 410 |
-
# Good - use an "old patterns" section
|
| 411 |
-
## Current method
|
| 412 |
-
Use the v2 API endpoint.
|
| 413 |
-
|
| 414 |
-
## Old patterns (deprecated)
|
| 415 |
-
<details>
|
| 416 |
-
<summary>Legacy v1 API</summary>
|
| 417 |
-
...
|
| 418 |
-
</details>
|
| 419 |
-
```
|
| 420 |
-
|
| 421 |
-
### 4. Inconsistent Terminology
|
| 422 |
-
Choose one term and use it throughout:
|
| 423 |
-
- ✅ Always "API endpoint" (not mixing "URL", "route", "path")
|
| 424 |
-
- ✅ Always "field" (not mixing "box", "element", "control")
|
| 425 |
-
|
| 426 |
-
### 5. Vague Skill Names
|
| 427 |
-
- ✅ Good: `processing-pdfs`, `analyzing-spreadsheets`
|
| 428 |
-
- ❌ Avoid: `helper`, `utils`, `tools`
|
| 429 |
-
|
| 430 |
-
---
|
| 431 |
-
|
| 432 |
-
## Skill Creation Workflow
|
| 433 |
-
|
| 434 |
-
When helping a user create a skill, follow this process:
|
| 435 |
-
|
| 436 |
-
### Phase 1: Discovery
|
| 437 |
-
|
| 438 |
-
Gather information about:
|
| 439 |
-
1. The skill's purpose and primary use case
|
| 440 |
-
2. Storage location (**personal** → confirm default full mirror vs explicit single-tool exception; **project** → default triple mirror unless explicit exception)
|
| 441 |
-
3. Trigger scenarios
|
| 442 |
-
4. Any specific requirements or constraints
|
| 443 |
-
5. Existing examples or patterns to follow
|
| 444 |
-
|
| 445 |
-
If you have access to the AskQuestion tool, use it for efficient structured gathering. Otherwise, ask conversationally.
|
| 446 |
-
|
| 447 |
-
### Phase 2: Design
|
| 448 |
-
|
| 449 |
-
1. Draft the skill name (lowercase, hyphens, max 64 chars)
|
| 450 |
-
2. Write a specific, third-person description
|
| 451 |
-
3. Outline the main sections needed
|
| 452 |
-
4. Identify if supporting files or scripts are needed
|
| 453 |
-
|
| 454 |
-
### Phase 3: Implementation
|
| 455 |
-
|
| 456 |
-
1. Create the directory structure
|
| 457 |
-
2. Write the SKILL.md file with frontmatter
|
| 458 |
-
3. Create any supporting reference files
|
| 459 |
-
4. Create any utility scripts if needed
|
| 460 |
-
5. **Personal skills:** mirror the skill directory (at minimum `SKILL.md`; include `reference.md` / `scripts/` if present) to **`~/.cursor/skills/`**, **`~/.claude/skills/`**, **`~/.codex/skills/`**, and **`~/.agents/skills/`**, unless the user specified an exception. Do not stop after the first path.
|
| 461 |
-
6. **Project skills:** mirror to **`.cursor/skills/`**, **`.claude/skills/`**, and **`.agents/skills/`** at the repository root (identical `SKILL.md`), unless the user specified an exception. Do not stop after the first path. If `.agents/skills` symlinks to `.claude/skills`, confirm the new skill is visible under both paths.
|
| 462 |
-
|
| 463 |
-
### Phase 4: Verification
|
| 464 |
-
|
| 465 |
-
1. Verify the SKILL.md is under 500 lines
|
| 466 |
-
2. Check that the description is specific and includes trigger terms
|
| 467 |
-
3. Ensure consistent terminology throughout
|
| 468 |
-
4. Verify all file references are one level deep
|
| 469 |
-
5. **Personal skills:** confirm the same `SKILL.md` exists in every mirror path (no stray single-tool install)
|
| 470 |
-
6. **Project skills:** confirm the same `SKILL.md` exists under `.cursor/skills/`, `.claude/skills/`, and `.agents/skills/` (or symlink equivalence for `.agents`)
|
| 471 |
-
7. Test that the skill can be discovered and applied
|
| 472 |
-
|
| 473 |
-
---
|
| 474 |
-
|
| 475 |
-
## Complete Example
|
| 476 |
-
|
| 477 |
-
Here's a complete example of a well-structured skill:
|
| 478 |
-
|
| 479 |
-
**Directory structure:**
|
| 480 |
-
```
|
| 481 |
-
code-review/
|
| 482 |
-
├── SKILL.md
|
| 483 |
-
├── STANDARDS.md
|
| 484 |
-
└── examples.md
|
| 485 |
-
```
|
| 486 |
-
|
| 487 |
-
**SKILL.md:**
|
| 488 |
-
```markdown
|
| 489 |
-
---
|
| 490 |
-
name: code-review
|
| 491 |
-
description: Review code for quality, security, and maintainability following team standards. Use when reviewing pull requests, examining code changes, or when the user asks for a code review.
|
| 492 |
-
---
|
| 493 |
-
|
| 494 |
-
# Code Review
|
| 495 |
-
|
| 496 |
-
## Quick Start
|
| 497 |
-
|
| 498 |
-
When reviewing code:
|
| 499 |
-
|
| 500 |
-
1. Check for correctness and potential bugs
|
| 501 |
-
2. Verify security best practices
|
| 502 |
-
3. Assess code readability and maintainability
|
| 503 |
-
4. Ensure tests are adequate
|
| 504 |
-
|
| 505 |
-
## Review Checklist
|
| 506 |
-
|
| 507 |
-
- [ ] Logic is correct and handles edge cases
|
| 508 |
-
- [ ] No security vulnerabilities (SQL injection, XSS, etc.)
|
| 509 |
-
- [ ] Code follows project style conventions
|
| 510 |
-
- [ ] Functions are appropriately sized and focused
|
| 511 |
-
- [ ] Error handling is comprehensive
|
| 512 |
-
- [ ] Tests cover the changes
|
| 513 |
-
|
| 514 |
-
## Providing Feedback
|
| 515 |
-
|
| 516 |
-
Format feedback as:
|
| 517 |
-
- 🔴 **Critical**: Must fix before merge
|
| 518 |
-
- 🟡 **Suggestion**: Consider improving
|
| 519 |
-
- 🟢 **Nice to have**: Optional enhancement
|
| 520 |
-
|
| 521 |
-
## Additional Resources
|
| 522 |
-
|
| 523 |
-
- For detailed coding standards, see [STANDARDS.md](STANDARDS.md)
|
| 524 |
-
- For example reviews, see [examples.md](examples.md)
|
| 525 |
-
```
|
| 526 |
-
|
| 527 |
-
---
|
| 528 |
-
|
| 529 |
-
## Summary Checklist
|
| 530 |
-
|
| 531 |
-
Before finalizing a skill, verify:
|
| 532 |
-
|
| 533 |
-
### Core Quality
|
| 534 |
-
- [ ] Description is specific and includes key terms
|
| 535 |
-
- [ ] Description includes both WHAT and WHEN
|
| 536 |
-
- [ ] Written in third person
|
| 537 |
-
- [ ] SKILL.md body is under 500 lines
|
| 538 |
-
- [ ] Consistent terminology throughout
|
| 539 |
-
- [ ] Examples are concrete, not abstract
|
| 540 |
-
|
| 541 |
-
### Structure
|
| 542 |
-
- [ ] File references are one level deep
|
| 543 |
-
- [ ] Progressive disclosure used appropriately
|
| 544 |
-
- [ ] Workflows have clear steps
|
| 545 |
-
- [ ] No time-sensitive information
|
| 546 |
-
|
| 547 |
-
### Personal (global) skills
|
| 548 |
-
- [ ] Mirrored to `~/.cursor/skills/`, `~/.claude/skills/`, `~/.codex/skills/`, and `~/.agents/skills/` unless the user explicitly excluded a target
|
| 549 |
-
|
| 550 |
-
### Project (repo) skills
|
| 551 |
-
- [ ] Identical `SKILL.md` under `.cursor/skills/`, `.claude/skills/`, and `.agents/skills/` (or confirm `.agents/skills` → `.claude/skills` symlink so one write covers Claude + Codex)
|
| 552 |
-
|
| 553 |
-
### If Including Scripts
|
| 554 |
-
- [ ] Scripts solve problems rather than punt
|
| 555 |
-
- [ ] Required packages are documented
|
| 556 |
-
- [ ] Error handling is explicit and helpful
|
| 557 |
-
- [ ] No Windows-style paths
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/debug/SKILL.md
DELETED
|
@@ -1,129 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: debug
|
| 3 |
-
description: >-
|
| 4 |
-
Systematic debugging for kokoro-coreml: consult README/ (guides and
|
| 5 |
-
learnings) and CLAUDE.md first, pull current library docs via Context7 MCP
|
| 6 |
-
when coremltools/PyTorch/API behavior is uncertain, parallelize investigation
|
| 7 |
-
with multiple subagents when stuck, prove fixes before calling success, then
|
| 8 |
-
capture one consolidated note in README/Notes via **write-notes** as the
|
| 9 |
-
**final** step before ending the session. For extreme cases, delegate a
|
| 10 |
-
multi-agent audit via the Claude Code CLI. Use when the user invokes **debug**,
|
| 11 |
-
**use debug**, asks to debug or fix a tricky bug, or work is blocked by unclear
|
| 12 |
-
failure modes after quick local checks.
|
| 13 |
-
---
|
| 14 |
-
|
| 15 |
-
# Debug
|
| 16 |
-
|
| 17 |
-
## Purpose
|
| 18 |
-
|
| 19 |
-
Reduce guesswork: **README/ and CLAUDE.md first**, **Context7 when library
|
| 20 |
-
behavior is uncertain**, **parallel hypotheses when stuck**, **proof before
|
| 21 |
-
“fixed”**, **one write-notes pass at session end**, **CLI multi-agent audit**
|
| 22 |
-
only for exceptional escalation.
|
| 23 |
-
|
| 24 |
-
## Use When
|
| 25 |
-
|
| 26 |
-
- The user says **debug**, **use the debug skill**, **debug this**, or the task
|
| 27 |
-
is **bug investigation** / **root-cause** analysis that is stalling.
|
| 28 |
-
- Failures involve **coremltools**, **PyTorch**, **Core ML runtime**, or **Swift
|
| 29 |
-
integration** where training data may be stale—use Context7 before assuming
|
| 30 |
-
APIs.
|
| 31 |
-
|
| 32 |
-
## Do Not Use When
|
| 33 |
-
|
| 34 |
-
- The user only wants a **trivial fix** with an obvious stack trace and no doc
|
| 35 |
-
ambiguity (still skim `README/` if the area is known to be finicky).
|
| 36 |
-
- The task is **greenfield feature build** with no defect.
|
| 37 |
-
|
| 38 |
-
## Workflow (in order)
|
| 39 |
-
|
| 40 |
-
### 1. Read repo knowledge first (mandatory)
|
| 41 |
-
|
| 42 |
-
Before writing code or deep-diving the stack:
|
| 43 |
-
|
| 44 |
-
1. **Skim `README/`** for files that match the subsystem (conversion, export,
|
| 45 |
-
Core ML runtime, tokenizer bridge, `kokoro.js`, etc.). Open the most relevant
|
| 46 |
-
guides and look for **known issues**, **workarounds**, and **checklists**.
|
| 47 |
-
2. **Skim `README/Notes/`** (when present) and high-level docs linked from
|
| 48 |
-
`README.md` for past investigations.
|
| 49 |
-
3. Read **`CLAUDE.md`** for PyTorch → Core ML playbook constraints (static
|
| 50 |
-
shapes, ANE layout, divide-and-conquer).
|
| 51 |
-
|
| 52 |
-
### 2. Context7 MCP (library and platform docs)
|
| 53 |
-
|
| 54 |
-
When the bug touches **coremltools**, **PyTorch**, **Swift Core ML**, or related
|
| 55 |
-
APIs:
|
| 56 |
-
|
| 57 |
-
1. Use **Context7**: resolve the library ID, then fetch focused docs for the API
|
| 58 |
-
or behavior in question.
|
| 59 |
-
2. Prefer Context7 over memory or generic web search **for API shape and
|
| 60 |
-
version-sensitive behavior**.
|
| 61 |
-
|
| 62 |
-
If Context7 is unavailable, fall back to official docs—**do not** invent APIs.
|
| 63 |
-
|
| 64 |
-
### 3. Reproduce and narrow
|
| 65 |
-
|
| 66 |
-
- Confirm **minimal repro** or the exact **export step / predict call / log
|
| 67 |
-
line** that fails.
|
| 68 |
-
- State a **one-sentence hypothesis** and what evidence would falsify it.
|
| 69 |
-
|
| 70 |
-
### 4. Parallel investigation when stuck
|
| 71 |
-
|
| 72 |
-
If the problem is **hard**, **cross-cutting**, or you have been **going in
|
| 73 |
-
circles** after the reproduce-and-narrow pass:
|
| 74 |
-
|
| 75 |
-
- In **one turn**, spin up **multiple** `Task` subagents with **`readonly: true`**
|
| 76 |
-
and **narrow charters** (e.g. “MIL/export path only”, “Swift shapes only”).
|
| 77 |
-
- **Merge** overlapping hypotheses; avoid duplicate deep reads of the same file.
|
| 78 |
-
|
| 79 |
-
**When in doubt, parallelize** (same posture as **`audit`**, but
|
| 80 |
-
hypothesis-driven).
|
| 81 |
-
|
| 82 |
-
### 5. Exceptionally frustrating bugs — CLI + audit
|
| 83 |
-
|
| 84 |
-
When **still stuck** after parallel investigation, or blast radius is **high**:
|
| 85 |
-
|
| 86 |
-
1. Use the **Claude Code CLI** from the repo root to run a **multi-agent `audit`**
|
| 87 |
-
over the **scoped slice** that matters.
|
| 88 |
-
2. In the handoff, cite relevant **`README/`** paths, **symptom + ruled-out
|
| 89 |
-
items**, and instruct use of the **`audit`** skill with readonly subagents.
|
| 90 |
-
|
| 91 |
-
Escalation only—**after** README, Context7, and a fair parallel pass.
|
| 92 |
-
|
| 93 |
-
### 6. Prove the fix (before claiming success)
|
| 94 |
-
|
| 95 |
-
Do **not** say **fixed** until there is **objective proof**: failing test passes,
|
| 96 |
-
export completes, Core ML predict matches tolerance, bad log line absent—whatever
|
| 97 |
-
matches the bug.
|
| 98 |
-
|
| 99 |
-
### 7. Write notes once (mandatory last step)
|
| 100 |
-
|
| 101 |
-
**After** investigation, perform **a single** `README/Notes/` update using
|
| 102 |
-
[**`write-notes`**](../write-notes/SKILL.md) (consolidate the session).
|
| 103 |
-
|
| 104 |
-
- One pass: symptom, repro, ruled out, root cause (`TBD` if unknown), fix,
|
| 105 |
-
**verification** (proven / not), pointers to guides.
|
| 106 |
-
- **Skip** only when the user explicitly wants no note or the outcome is trivial.
|
| 107 |
-
|
| 108 |
-
## Output expectations
|
| 109 |
-
|
| 110 |
-
- **What was read** from `README/` / `CLAUDE.md` (paths).
|
| 111 |
-
- **Verification:** what proved the fix (or **unverified** / **blocked**).
|
| 112 |
-
- **Which note file(s)** were updated in step 7 (or why skipped).
|
| 113 |
-
- **Whether Context7** was used and for which topic.
|
| 114 |
-
- **Leading hypothesis(es)** if still open, else **root cause** summary.
|
| 115 |
-
|
| 116 |
-
## Anti-patterns
|
| 117 |
-
|
| 118 |
-
- Skipping **`README/`** / **`CLAUDE.md`** to “save time.”
|
| 119 |
-
- Assuming API behavior without **Context7 or official docs** when versions
|
| 120 |
-
matter.
|
| 121 |
-
- **Serial** thrashing instead of **parallel** charters.
|
| 122 |
-
- **Declaring victory** without **verification**.
|
| 123 |
-
- **Patching notes throughout** instead of **one** end-of-session pass.
|
| 124 |
-
|
| 125 |
-
## Relation to other skills
|
| 126 |
-
|
| 127 |
-
- **`audit`:** structured review; use via CLI escalation when debug maxes out.
|
| 128 |
-
- **`write-notes`:** once at end of debug session.
|
| 129 |
-
- **`phase-audit`:** plan-phase checks—not the same as production debugging.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/deploy/SKILL.md
DELETED
|
@@ -1,67 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: deploy
|
| 3 |
-
description: >-
|
| 4 |
-
Clarifies what “ship” means for kokoro-coreml: there is no Cloudflare-style
|
| 5 |
-
multi-worker deploy script. Use for tagging releases, pushing the branch,
|
| 6 |
-
coordinating with the macOS app repo, or verifying exports before handoff.
|
| 7 |
-
Before treating a revision as releasable, run the repo’s primary checks (see
|
| 8 |
-
git-commit / audit). Do not use when the user only wants local experiments
|
| 9 |
-
with no remote or release intent.
|
| 10 |
-
---
|
| 11 |
-
|
| 12 |
-
# Deploy (kokoro-coreml)
|
| 13 |
-
|
| 14 |
-
## Purpose
|
| 15 |
-
|
| 16 |
-
This repository is a **PyTorch → Core ML** conversion and model-artifact tree for
|
| 17 |
-
Kokoro TTS. It is **not** the Roast Cloudflare monorepo: there are **no**
|
| 18 |
-
`pnpm deploy:*` scripts or Workers/Pages pipelines here.
|
| 19 |
-
|
| 20 |
-
“Deploy” in this context means **release engineering** appropriate to this repo:
|
| 21 |
-
|
| 22 |
-
- **Git:** push branches, tags, or PRs (often via **`git-push`**).
|
| 23 |
-
- **Artifacts:** `.mlpackage` bundles under `coreml/`, checkpoints, and export
|
| 24 |
-
scripts consumed by a separate macOS app (e.g. TalkToMe).
|
| 25 |
-
- **Verification:** run **`pytest`** (or targeted export smoke scripts) before
|
| 26 |
-
declaring a revision ready for downstream integration.
|
| 27 |
-
|
| 28 |
-
## Default interpretation
|
| 29 |
-
|
| 30 |
-
- **“Ship it” / “deploy”** → confirm what the user means: **push to GitHub**,
|
| 31 |
-
**cut a tag**, or **hand models to the app**—not a cloud deploy unless they
|
| 32 |
-
name another system.
|
| 33 |
-
|
| 34 |
-
## Pre-ship gate (recommended)
|
| 35 |
-
|
| 36 |
-
From the **repository root**, when a change touches **Python export, Core ML, or
|
| 37 |
-
tests**:
|
| 38 |
-
|
| 39 |
-
1. **`pytest`** (full test pass when tests are present).
|
| 40 |
-
2. If the change is export-only, at minimum run the **relevant** `examples/` or
|
| 41 |
-
`test_*.py` scripts the guides mention.
|
| 42 |
-
|
| 43 |
-
There is no single CI workflow in `.github/workflows/` for this repo yet; treat
|
| 44 |
-
**local green tests** as the main gate before pushing risky changes.
|
| 45 |
-
|
| 46 |
-
## Procedure (agent)
|
| 47 |
-
|
| 48 |
-
1. Read **`README.md`**, **`CLAUDE.md`** (PyTorch → Core ML playbook), and the
|
| 49 |
-
relevant **`README/*.md`** guide for the subsystem (conversion, runtime,
|
| 50 |
-
export).
|
| 51 |
-
2. Do **not** run Cloudflare/Roast deploy commands—they do not apply.
|
| 52 |
-
3. Run [Pre-ship gate](#pre-ship-gate-recommended) before advising “ready to
|
| 53 |
-
ship.”
|
| 54 |
-
4. For **git remote** operations, follow **`git-push`** when the user wants push
|
| 55 |
-
+ CI (if added later).
|
| 56 |
-
|
| 57 |
-
## Anti-patterns
|
| 58 |
-
|
| 59 |
-
- Copying **Roast** `pnpm deploy:staging` / Workers steps into this repo.
|
| 60 |
-
- Pushing large binary or regenerated **`.mlpackage`** changes without noting
|
| 61 |
-
what was regenerated and how to verify.
|
| 62 |
-
|
| 63 |
-
## Related skills
|
| 64 |
-
|
| 65 |
-
- **`git-push`:** commit, merge, push, chase CI when CI exists.
|
| 66 |
-
- **`git-commit`:** post-commit **`pytest`** awareness (non-blocking heads-up).
|
| 67 |
-
- **`audit`:** full review when the user says **`audit`**.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/documentation/SKILL.md
DELETED
|
@@ -1,53 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: documentation
|
| 3 |
-
description: Write or review inline code documentation that captures domain knowledge, non-obvious constraints, non-greppable cross-file contracts, and state lifecycle. Use when the task is adding or reviewing Python docstrings, file headers, state docs, or constant rationale. Do not use for README files, markdown docs, plan documents, or code changes where comments are incidental.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Documentation
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Enforce the repo's inline code documentation standards. Document what a future
|
| 11 |
-
editor cannot safely derive from the code itself.
|
| 12 |
-
|
| 13 |
-
## Use When
|
| 14 |
-
|
| 15 |
-
- Adding or reviewing Python docstrings or file headers.
|
| 16 |
-
- Documenting state lifecycle, constant rationale, or Core ML / export gotchas.
|
| 17 |
-
- A PR review flags missing or low-quality documentation.
|
| 18 |
-
|
| 19 |
-
## Do Not Use When
|
| 20 |
-
|
| 21 |
-
- Writing README, plan, or notes documents.
|
| 22 |
-
- General code changes where documentation isn't the focus.
|
| 23 |
-
- Markdown formatting issues (that's linting, not documentation).
|
| 24 |
-
|
| 25 |
-
## Procedure
|
| 26 |
-
|
| 27 |
-
1. Read [references/index.md](references/index.md) first.
|
| 28 |
-
2. Inspect the target file and the smallest set of related files needed to
|
| 29 |
-
confirm what context is truly missing.
|
| 30 |
-
3. Add or tighten docs only where they capture:
|
| 31 |
-
- domain knowledge
|
| 32 |
-
- non-obvious constraints
|
| 33 |
-
- non-greppable cross-file contracts
|
| 34 |
-
- state lifecycle or constant rationale
|
| 35 |
-
4. Prefer short, durable comments over boilerplate:
|
| 36 |
-
- short file headers
|
| 37 |
-
- docstrings that explain why or constraints
|
| 38 |
-
- state docs that explain lifetime and persistence
|
| 39 |
-
- constant comments that explain why the value exists
|
| 40 |
-
5. Do not add manual call graphs, line-by-line prose, or comments that are more
|
| 41 |
-
likely to drift than to help.
|
| 42 |
-
6. If the missing context actually belongs in a canonical guide, update the
|
| 43 |
-
guide as well instead of burying the whole explanation in code comments.
|
| 44 |
-
|
| 45 |
-
## References
|
| 46 |
-
|
| 47 |
-
Read [references/index.md](references/index.md) first.
|
| 48 |
-
|
| 49 |
-
## Handoff Rules
|
| 50 |
-
|
| 51 |
-
- Hand off to **`debug`** if the real issue is a runtime bug, not missing docs.
|
| 52 |
-
- Hand off to normal refactoring flow if the task is structural change, not
|
| 53 |
-
documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/documentation/references/index.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
| 1 |
-
# Documentation References
|
| 2 |
-
|
| 3 |
-
Canonical docs for `documentation`.
|
| 4 |
-
|
| 5 |
-
- `README/Guides/content/code-documentation-guide.md`
|
| 6 |
-
Read first for the repo's actual inline code documentation philosophy and
|
| 7 |
-
review checklist.
|
| 8 |
-
- the most relevant `README/Guides/...` docs for the subsystem you are
|
| 9 |
-
documenting
|
| 10 |
-
Read these when the useful comment depends on export, Core ML runtime, or
|
| 11 |
-
app-integration context that is not obvious from the local file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/execute-plan/SKILL.md
DELETED
|
@@ -1,103 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: execute-plan
|
| 3 |
-
description: Execute a checked-in implementation plan for this repo phase by phase. Use when the user provides a concrete plan path and wants end-to-end implementation, phase audits, plan updates, commits, push, and CI monitoring. Do not use for creating a plan, one-off fixes without a checked-in plan, or read-only review work.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Execute Plan
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Use this skill to execute an existing repo plan without collapsing the work into
|
| 11 |
-
one giant unreviewed change. The unit of progress is one completed phase at a
|
| 12 |
-
time.
|
| 13 |
-
|
| 14 |
-
## Use When
|
| 15 |
-
|
| 16 |
-
- A concrete checked-in plan path exists in [README/Plans](../../../README/Plans).
|
| 17 |
-
- The plan is implementation-ready.
|
| 18 |
-
- The user wants the full implementation loop, not just discussion.
|
| 19 |
-
|
| 20 |
-
## Do Not Use When
|
| 21 |
-
|
| 22 |
-
- No checked-in plan exists yet.
|
| 23 |
-
- The request is a one-off fix without a real plan.
|
| 24 |
-
- The request is planning, brainstorming, or read-only review.
|
| 25 |
-
|
| 26 |
-
## Authority Model
|
| 27 |
-
|
| 28 |
-
- Explicit invocation of `$execute-plan` counts as authorization for this
|
| 29 |
-
workflow's git side effects. Direct naming also counts, for example
|
| 30 |
-
"use execute-plan":
|
| 31 |
-
- phase commits
|
| 32 |
-
- sync with `origin/main`
|
| 33 |
-
- push
|
| 34 |
-
- CI monitoring and follow-up fixes
|
| 35 |
-
- If `execute-plan` was routed implicitly or inferred rather than invoked
|
| 36 |
-
directly, it may prepare local implementation work but must stop before the
|
| 37 |
-
first commit or push and explain why.
|
| 38 |
-
- At the start of the workflow, state that `execute-plan` is running and that
|
| 39 |
-
it will create phase commits, push, and monitor CI unless the user opts out.
|
| 40 |
-
|
| 41 |
-
## Procedure
|
| 42 |
-
|
| 43 |
-
1. Read [references/index.md](references/index.md) first.
|
| 44 |
-
2. Read the target plan and the linked canonical
|
| 45 |
-
[README/Skills](../../../README/Skills),
|
| 46 |
-
[README/Guides](../../../README/Guides), and
|
| 47 |
-
[README/Notes](../../../README/Notes) before changing code.
|
| 48 |
-
3. Refuse to start if the plan is missing, too vague to execute honestly, or
|
| 49 |
-
still requires planning work.
|
| 50 |
-
4. Execute one phase at a time:
|
| 51 |
-
- 4a. Execute the current phase. Implement only the active phase scope.
|
| 52 |
-
Make it perfect. No god modules. No bugs. Just elegant, modular code.
|
| 53 |
-
- 4b. Audit the execution with `phase-audit`. Prefer delegated review when
|
| 54 |
-
the runtime supports it cleanly; otherwise run the same checklist locally
|
| 55 |
-
against the canonical rubric. Double-check the work and fix findings
|
| 56 |
-
before moving on. Make it perfect.
|
| 57 |
-
- 4c. Update the plan. Make the phase checkboxes match reality before
|
| 58 |
-
calling the phase complete.
|
| 59 |
-
- 4d. Commit only your changes. Stage **only** the files for the completed
|
| 60 |
-
phase (narrower than the default `git-commit` whole-tree staging) and
|
| 61 |
-
follow the `git-commit` skill for the commit **message** (what and why).
|
| 62 |
-
5. After all phases are complete:
|
| 63 |
-
- follow `git-push` for syncing with `origin`, pushing the branch, watching
|
| 64 |
-
GitHub Actions (when CI exists), and fixing failures until green (phase
|
| 65 |
-
commits stay narrower than default `git-commit`; `git-push` still applies
|
| 66 |
-
merge/push/CI loop).
|
| 67 |
-
|
| 68 |
-
## Worktree Rules
|
| 69 |
-
|
| 70 |
-
- Ignore unrelated dirty files unless they directly conflict with the active
|
| 71 |
-
phase.
|
| 72 |
-
- Never revert unrelated user work.
|
| 73 |
-
- Stop only when an existing change creates a real safety or correctness
|
| 74 |
-
conflict with the current phase.
|
| 75 |
-
|
| 76 |
-
## Audit Contract
|
| 77 |
-
|
| 78 |
-
Before each phase commit, explicitly verify:
|
| 79 |
-
|
| 80 |
-
- the phase goal is actually complete
|
| 81 |
-
- the plan checkboxes match the implementation
|
| 82 |
-
- obvious edge cases are handled
|
| 83 |
-
- tests or checks are appropriate for the change
|
| 84 |
-
- the current phase is commit-ready
|
| 85 |
-
|
| 86 |
-
## Boundaries
|
| 87 |
-
|
| 88 |
-
- Do not create a new plan inside this workflow.
|
| 89 |
-
- Do not silently skip the audit step.
|
| 90 |
-
- Do not push with known failing CI unless the user explicitly overrides that
|
| 91 |
-
rule.
|
| 92 |
-
|
| 93 |
-
## Canonical Docs
|
| 94 |
-
|
| 95 |
-
Read [references/index.md](references/index.md) first. It maps the shared
|
| 96 |
-
workflow guide, the phase audit rubric, and the artifacts needed to execute a
|
| 97 |
-
plan cleanly.
|
| 98 |
-
|
| 99 |
-
## Handoff Rules
|
| 100 |
-
|
| 101 |
-
- Hand off to `phase-audit` when clean delegated review is available.
|
| 102 |
-
- Hand off to `create-plan` only if the user actually needs a new plan instead
|
| 103 |
-
of execution.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/execute-plan/references/index.md
DELETED
|
@@ -1,20 +0,0 @@
|
|
| 1 |
-
# Execute Plan References
|
| 2 |
-
|
| 3 |
-
Canonical docs for `execute-plan` live under **`README/Skills/`**:
|
| 4 |
-
|
| 5 |
-
- `README/Skills/plan-workflow-skills-guide.md`
|
| 6 |
-
Read first for the shared workflow contract and the explicit execution loop.
|
| 7 |
-
- `README/Skills/phase-audit-rubric.md`
|
| 8 |
-
Read for the canonical local-audit fallback when delegated review is not
|
| 9 |
-
available.
|
| 10 |
-
|
| 11 |
-
Use **`README/Skills/`** when the active plan interacts with other repo skills and
|
| 12 |
-
routing constraints (start with the guides above; extend to other files in that
|
| 13 |
-
folder as they are added).
|
| 14 |
-
|
| 15 |
-
Always inspect:
|
| 16 |
-
|
| 17 |
-
- the concrete checked-in plan file before any implementation
|
| 18 |
-
- every guide or note linked from the active phase
|
| 19 |
-
- the changed files and verification outputs before updating plan checkboxes or
|
| 20 |
-
committing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/git-commit/SKILL.md
DELETED
|
@@ -1,236 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: git-commit
|
| 3 |
-
description: Produces comprehensive Git commit messages (what and why) and, when authorized, stages and commits. By default stages the entire working tree (all pending changes), including work from other agents or earlier sessions—not only files the current agent touched. After a successful commit (non-blocking), runs `pytest` at the repo root when available and a **lightweight** read of **HEAD** only (bug risks, god-module smells, needless complexity, duplication)—not a full **audit** (no lint gate, no grades, no multi-agent); for that, the user invokes the **`audit`** skill. Surfacing findings as optional heads-up, never as a reason to block or unwind the commit unless the user asks. No automatic fixes. Message-only requests use the same template without running git until commit is explicitly requested. Also use inside authorized workflows (for example execute-plan phase commits). Do not use for read-only review, hypothetical history, or when git writes are not authorized.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Git Commit
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Produce **reviewable commits**: a clear subject line and a body that explains
|
| 11 |
-
**what** changed and **why**. **Staging is whole-tree by default** so one commit
|
| 12 |
-
reflects everything currently pending on the branch, not a cherry-pick of what
|
| 13 |
-
this session edited.
|
| 14 |
-
|
| 15 |
-
## Authority
|
| 16 |
-
|
| 17 |
-
- **`git commit` allowed when** the user explicitly asks you to commit, or a
|
| 18 |
-
checked-in workflow skill (for example `execute-plan`) authorizes commits as
|
| 19 |
-
part of its procedure.
|
| 20 |
-
- **Message text only** when the user wants a commit message but did **not**
|
| 21 |
-
ask you to run Git: use the subject and body rules below, optionally after
|
| 22 |
-
`git status` / `git diff` for context. Do **not** `git add` or `git commit`.
|
| 23 |
-
- If committing would be a surprise—no explicit commit request and no
|
| 24 |
-
workflow granting commit authority—**stop** before `git commit` and confirm
|
| 25 |
-
intent.
|
| 26 |
-
|
| 27 |
-
## Use When
|
| 28 |
-
|
| 29 |
-
- A commit with a strong message is requested or workflow-authorized.
|
| 30 |
-
- The user wants help composing commit message text (with or without you
|
| 31 |
-
running `git commit`—see Authority).
|
| 32 |
-
|
| 33 |
-
## Do Not Use When
|
| 34 |
-
|
| 35 |
-
- Git writes are forbidden by context and nothing overrides that.
|
| 36 |
-
|
| 37 |
-
## Staging scope
|
| 38 |
-
|
| 39 |
-
- **Default (this skill alone):** Stage **all** changes in the working tree that
|
| 40 |
-
Git will track—modified, deleted, and **untracked** files—typically
|
| 41 |
-
`git add -A` at the repo root. That includes edits made by **other agents**,
|
| 42 |
-
the user, or tooling. `.gitignore` still applies (do not fight it to force
|
| 43 |
-
secrets into the commit).
|
| 44 |
-
- **Parent workflow override:** If the active procedure **explicitly** limits
|
| 45 |
-
what may be staged (for example `execute-plan` phase commits: only files for
|
| 46 |
-
the completed phase), **follow that staging scope** and still use the message
|
| 47 |
-
rules below.
|
| 48 |
-
- If `git status` shows something surprising (unexpected paths, credentials,
|
| 49 |
-
huge artifacts), **surface it** before committing; do not silently drop
|
| 50 |
-
co-workers’ changes to keep the commit “tidy.”
|
| 51 |
-
|
| 52 |
-
## Procedure
|
| 53 |
-
|
| 54 |
-
1. **Inspect** full `git status` and `git diff` (and `git diff --staged` if
|
| 55 |
-
anything is already staged). Understand **everything** that will be included.
|
| 56 |
-
2. **Stage** per [Staging scope](#staging-scope) above.
|
| 57 |
-
3. **Subject line** (about 50 characters target, 72 hard cap):
|
| 58 |
-
- Imperative mood: "Add", "Fix", "Refactor" — not past tense ("Added",
|
| 59 |
-
"Fixed") or third-person singular ("Adds", "Fixes") as the **subject**.
|
| 60 |
-
- The **body** may include issue closers such as `Fixes #123` when that is the
|
| 61 |
-
project convention.
|
| 62 |
-
- Be specific about area or behavior, not "Update code" or "WIP".
|
| 63 |
-
4. **Body** (one blank line after the subject; wrap near 72 columns):
|
| 64 |
-
- **What**: bullets or short paragraphs covering **all** substantive areas in
|
| 65 |
-
this commit (not only the files you touched this turn).
|
| 66 |
-
- **Why**: motivation, tradeoffs, what was broken or awkward, or why this
|
| 67 |
-
approach over alternatives.
|
| 68 |
-
- **Context** (optional): issue links, plan paths, or follow-ups when they
|
| 69 |
-
help the next reader.
|
| 70 |
-
5. **Commit** (commit path only), for example in bash or zsh:
|
| 71 |
-
- `git commit -m "subject" -m $'paragraph...\n\n- bullet'`
|
| 72 |
-
- or `git commit` with an editor when the body is long.
|
| 73 |
-
6. **Verify** (commit path only): `git show --stat HEAD` matches intent (entire
|
| 74 |
-
staged set landed).
|
| 75 |
-
7. **Post-commit audit** (commit path only): after the commit succeeds, follow
|
| 76 |
-
[Post-commit audit](#post-commit-audit). Run **`pytest`** at the repo root
|
| 77 |
-
when pytest is installed; then scan **only** the `HEAD` diff for bug risks,
|
| 78 |
-
god modules, needless complexity, and duplication (**lightweight**—see
|
| 79 |
-
[What this is not](#what-this-is-not)).
|
| 80 |
-
**Tell the user** about findings in the same turn (paths,
|
| 81 |
-
severity, next step if obvious)—as **heads-up**, not scolding. The commit is
|
| 82 |
-
already done; do **not** delay the commit, imply it was a mistake, or push
|
| 83 |
-
amend/revert unless the user asks. Do **not** silently “fix” findings unless
|
| 84 |
-
the user asked; surfacing is the goal. If everything passes and nothing
|
| 85 |
-
worrisome stands out in the diff, you may omit commentary.
|
| 86 |
-
|
| 87 |
-
On the **message-only** path, perform step 1 as needed for context, skip
|
| 88 |
-
staging and steps 5–7, and output the subject and body (use the template
|
| 89 |
-
below).
|
| 90 |
-
|
| 91 |
-
## Message template
|
| 92 |
-
|
| 93 |
-
```text
|
| 94 |
-
Add/improve/fix <behavior> in <area>
|
| 95 |
-
|
| 96 |
-
What:
|
| 97 |
-
- ...
|
| 98 |
-
|
| 99 |
-
Why:
|
| 100 |
-
- ...
|
| 101 |
-
```
|
| 102 |
-
|
| 103 |
-
## Post-commit audit
|
| 104 |
-
|
| 105 |
-
Run this **only after** `git commit` completes successfully (same repo, same
|
| 106 |
-
branch).
|
| 107 |
-
|
| 108 |
-
### Intent (non-blocking)
|
| 109 |
-
|
| 110 |
-
- **Commit always wins.** Nothing here vetoes, reorders, or shames a commit that
|
| 111 |
-
already landed. People should keep committing; this step is **extra awareness**
|
| 112 |
-
for the author, not policy for the team.
|
| 113 |
-
- **Alerts, not gates.** Test or review findings are **heads-up** so you can fix
|
| 114 |
-
forward (`pytest` failed after commit—here is the output) or choose to ignore.
|
| 115 |
-
Do not treat red tests as “the commit was wrong.”
|
| 116 |
-
- **Optional follow-up.** Suggest a fix commit or local cleanup only when helpful;
|
| 117 |
-
never pressure amend/revert unless the user explicitly wants that.
|
| 118 |
-
- **Deeper review:** For **lint + full test matrix**, **A–F grades**, optional
|
| 119 |
-
**multi-agent** passes, and broader scope, the user should invoke the **`audit`**
|
| 120 |
-
skill (message contains **`audit`**)—do not inflate post-commit into a full audit.
|
| 121 |
-
|
| 122 |
-
### What this is not
|
| 123 |
-
|
| 124 |
-
Stay **narrow** so commits stay fast:
|
| 125 |
-
|
| 126 |
-
- **Do** run **`pytest`** (when available) and read **`git show -p HEAD`** (this commit only).
|
| 127 |
-
- **Do not** run exhaustive export suites or multi-step smoke tests here by
|
| 128 |
-
default—those belong to **`audit`**, **`deploy`**, or the user’s task unless
|
| 129 |
-
already requested.
|
| 130 |
-
|
| 131 |
-
### Python checks
|
| 132 |
-
|
| 133 |
-
From the **repository root**, when `pytest` is on the path:
|
| 134 |
-
|
| 135 |
-
- Run **`pytest`** (or **`python -m pytest`** if that is how the environment is set up).
|
| 136 |
-
|
| 137 |
-
If pytest is missing, no tests exist, or the run fails, **report the relevant
|
| 138 |
-
output** with neutral framing (“Heads-up: `pytest` failed after your commit”).
|
| 139 |
-
The commit stays; the user can fix in a follow-up. Do not hide failures.
|
| 140 |
-
|
| 141 |
-
### Diff scope
|
| 142 |
-
|
| 143 |
-
Use the committed change as the source of truth—e.g. `git show HEAD` or
|
| 144 |
-
`git show -p HEAD`, and the paths touched:
|
| 145 |
-
`git diff-tree --no-commit-id --name-only -r HEAD`.
|
| 146 |
-
|
| 147 |
-
### Bug scan
|
| 148 |
-
|
| 149 |
-
Re-read the change as a quick self-review **on changed lines only**. Flag **likely**
|
| 150 |
-
problems for the user (this is not a substitute for CI, **`audit`**, or the full
|
| 151 |
-
test suite unless already part of the task):
|
| 152 |
-
|
| 153 |
-
- Logic errors, wrong conditions, off-by-one, incorrect defaults.
|
| 154 |
-
- Missing or broken error handling / early returns where failures are plausible.
|
| 155 |
-
- Obvious regressions: removed guards, weakened validation, race or stale-state
|
| 156 |
-
risks introduced by the new code.
|
| 157 |
-
- API or type mismatches, impossible states, or changes that contradict the
|
| 158 |
-
commit message.
|
| 159 |
-
- **Async discipline (spot-check):** missing `await`, fire-and-forget promises,
|
| 160 |
-
or ambiguous error propagation in the diff—borrowed from **`audit`** charter,
|
| 161 |
-
but **only** what you see in this patch.
|
| 162 |
-
- **Workers / queues / webhooks / cron (spot-check):** if the diff touches those,
|
| 163 |
-
glance for obvious at-least-once hazards (duplicate side effects without
|
| 164 |
-
idempotency)—**one-line flag**, not a full reliability audit.
|
| 165 |
-
- **Security / privacy (glance):** obvious secrets or PII logged in the diff; if
|
| 166 |
-
it needs auth review, nudge toward **`audit`** instead of digging here.
|
| 167 |
-
- Anything that would make you say “wait, that can’t be right” on a PR.
|
| 168 |
-
|
| 169 |
-
### God module scan
|
| 170 |
-
|
| 171 |
-
Align with repo philosophy: **clear separation of concerns**, no dumping
|
| 172 |
-
unrelated responsibilities into one place.
|
| 173 |
-
|
| 174 |
-
Flag when this commit **creates or substantially grows** a module that looks
|
| 175 |
-
like a grab-bag “does everything” file—for example:
|
| 176 |
-
|
| 177 |
-
- **Size**: one file approaches or exceeds the project’s per-file size guidance
|
| 178 |
-
(this repo aims for well under ~1000 LOC per file—use judgment near that
|
| 179 |
-
band).
|
| 180 |
-
- **Scope creep**: unrelated domains, layers, or features fused into a single
|
| 181 |
-
module (many disparate exports, orchestration + persistence + UI helpers in
|
| 182 |
-
one file, etc.).
|
| 183 |
-
- **Fan-in smell**: a change that makes one file the obvious choke point for
|
| 184 |
-
unrelated call sites when a split would be natural.
|
| 185 |
-
|
| 186 |
-
When in doubt, **flag lightly** with reasoning; avoid crying wolf, but do not
|
| 187 |
-
skip obvious smells to avoid bothering the user.
|
| 188 |
-
|
| 189 |
-
### Needless complexity and duplication
|
| 190 |
-
|
| 191 |
-
- **Needless complexity**: extra layers, over-abstraction, clever patterns where
|
| 192 |
-
a straight line would do, new dependencies or infrastructure for trivial
|
| 193 |
-
wins, configuration explosions, or branching that obscures the actual
|
| 194 |
-
behavior—especially when it violates **simpler is better** for this repo.
|
| 195 |
-
- **Duplication**: copy-pasted blocks, parallel implementations of the same rule
|
| 196 |
-
or transform, near-identical helpers that should be one function, or “another
|
| 197 |
-
copy” of logic that already exists elsewhere—when unifying would obviously
|
| 198 |
-
reduce drift risk.
|
| 199 |
-
|
| 200 |
-
Flag when this commit **introduces or worsens** these; cite paths and why it
|
| 201 |
-
matters.
|
| 202 |
-
|
| 203 |
-
### What to output
|
| 204 |
-
|
| 205 |
-
- **pytest**: pass/fail; if fail, enough output to act on, framed as post-commit
|
| 206 |
-
awareness—not a blocked workflow.
|
| 207 |
-
- **If other issues**: short summary, bullet list with **file paths**, what you
|
| 208 |
-
saw, and whether it looks like a definite bug vs. a risk vs. a maintainability
|
| 209 |
-
smell.
|
| 210 |
-
- **If clean**: say nothing or one line—no boilerplate required.
|
| 211 |
-
|
| 212 |
-
## Anti-patterns
|
| 213 |
-
|
| 214 |
-
- One-word subjects ("fix", "wip", "updates").
|
| 215 |
-
- A body that only repeats the subject.
|
| 216 |
-
- **Cherry-staging** only the files you personally edited when the user asked
|
| 217 |
-
for a commit and no narrower workflow override applies—other agents’ work
|
| 218 |
-
must ship too.
|
| 219 |
-
- Claiming a “single logical change” while omitting co-present dirty files
|
| 220 |
-
without explicit user direction.
|
| 221 |
-
- **Skipping the post-commit audit** after a successful commit when this skill’s
|
| 222 |
-
commit path ran—especially omitting **`pytest`** when available or staying silent
|
| 223 |
-
when it fails or the diff clearly introduces risk.
|
| 224 |
-
- **Skipping pytest** when it is installed and the repo has tests; hiding failures
|
| 225 |
-
instead of showing them.
|
| 226 |
-
- **Turning post-commit into a full audit:** running full export smoke, multi-agent
|
| 227 |
-
**`Task`** delegation, or **A–F grades** here—use the **`audit`** skill when the
|
| 228 |
-
user says **`audit`**.
|
| 229 |
-
- **Blocking mindset:** implying the user should not have committed, or urging
|
| 230 |
-
amend/revert, because of post-commit findings—unless they asked for that.
|
| 231 |
-
|
| 232 |
-
## Related skills
|
| 233 |
-
|
| 234 |
-
- **`audit`:** user message includes **`audit`**; optional full tests, optional
|
| 235 |
-
multi-agent, **A–F** grades, broader scope.
|
| 236 |
-
- **`deploy`:** what “ship” means for this repo (no Cloudflare scripts); see that skill.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/git-push/SKILL.md
DELETED
|
@@ -1,111 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: git-push
|
| 3 |
-
description: Commits any pending work via git-commit, syncs with origin (fetch, merge-oriented pull), pushes the current branch, watches GitHub Actions, and fixes root causes until CI is green—including coverage gates without lowering thresholds. Use when the user asks to push, sync and push, or ship the branch and chase CI. Requires explicit invocation or a parent workflow that authorizes push and CI remediation. Do not use without permission to write to git remote or when the user forbids automated CI fix loops.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Git Push
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Close the loop from **dirty working tree → clean push → green GitHub Actions**:
|
| 11 |
-
commit everything pending when needed, integrate upstream with **merge** (not
|
| 12 |
-
silent rebase unless the user prefers otherwise), push, watch workflows, and
|
| 13 |
-
iterate on real failures until passes.
|
| 14 |
-
|
| 15 |
-
## Authority
|
| 16 |
-
|
| 17 |
-
- **`git push` allowed when** the user invokes `$git-push`, names `git-push`,
|
| 18 |
-
or clearly asks you to sync, push, and fix CI until green—or a checked-in
|
| 19 |
-
workflow authorizes the same (for example cooperating with `execute-plan`
|
| 20 |
-
after phased work).
|
| 21 |
-
- This authorizes **`git commit`**, **`git pull`/`git merge`** (integrating
|
| 22 |
-
`origin`), **`git push`**, reading CI logs, and **code/test fixes** needed to
|
| 23 |
-
get workflows green.
|
| 24 |
-
- If push or CI remediation would be a surprise, **stop** and confirm.
|
| 25 |
-
|
| 26 |
-
## Use When
|
| 27 |
-
|
| 28 |
-
- The user wants the branch **on the remote** and **CI passing**.
|
| 29 |
-
- You need the full “commit if needed → sync → push → babysit CI” routine.
|
| 30 |
-
|
| 31 |
-
## Do Not Use When
|
| 32 |
-
|
| 33 |
-
- The user only wants a **dry run** or local-only commands.
|
| 34 |
-
- You are not allowed to touch **`origin`** or fix CI (no override).
|
| 35 |
-
|
| 36 |
-
## Preconditions (agent)
|
| 37 |
-
|
| 38 |
-
1. Know the **current branch** and whether it has an **upstream**
|
| 39 |
-
(`git status -sb`, `git rev-parse --abbrev-ref @{u}` when set).
|
| 40 |
-
2. `git fetch origin` before deciding you are in sync.
|
| 41 |
-
|
| 42 |
-
## Procedure
|
| 43 |
-
|
| 44 |
-
### 1. Uncommitted changes
|
| 45 |
-
|
| 46 |
-
- If **`git status --porcelain`** is non-empty (including untracked you intend
|
| 47 |
-
to keep), run **`git-commit`** first so the working tree is committed with a
|
| 48 |
-
full **what / why** message.
|
| 49 |
-
- **Do not** bypass `git-commit` with a lazy one-liner unless the user
|
| 50 |
-
explicitly overrides.
|
| 51 |
-
|
| 52 |
-
### 2. Integrate `origin` (merge-oriented)
|
| 53 |
-
|
| 54 |
-
- **Preferred** for this skill: after `git fetch origin`, integrate with
|
| 55 |
-
**merge**, not rebase—unless the user explicitly asks for rebase.
|
| 56 |
-
- If an upstream exists: e.g. `git pull --no-rebase` (or `git merge`
|
| 57 |
-
`origin/<upstream-branch>` after fetch) so local commits combine with remote
|
| 58 |
-
updates.
|
| 59 |
-
- If there is **no upstream** yet, a reasonable first push is
|
| 60 |
-
`git push -u origin HEAD` after the branch is ready—set upstream for future
|
| 61 |
-
pulls.
|
| 62 |
-
- **Merge conflicts**: resolve carefully; if intent is ambiguous, **stop** and
|
| 63 |
-
ask rather than guessing.
|
| 64 |
-
|
| 65 |
-
### 3. Push
|
| 66 |
-
|
| 67 |
-
- `git push` to the appropriate remote (usually `origin`) and branch.
|
| 68 |
-
- If push is rejected because the remote advanced, **fetch**, **merge** (per
|
| 69 |
-
above), resolve conflicts, then **push again**—do not force-push unless the
|
| 70 |
-
user explicitly requests it and it is safe for the branch.
|
| 71 |
-
|
| 72 |
-
### 4. Monitor GitHub Actions
|
| 73 |
-
|
| 74 |
-
- Identify the run(s) for the pushed commit / branch (for example
|
| 75 |
-
`gh run list --branch <branch> --limit 5` then
|
| 76 |
-
`gh run watch <run-id> --exit-status`, or the Actions UI).
|
| 77 |
-
- Wait until the relevant workflow(s) **finish**.
|
| 78 |
-
|
| 79 |
-
### 5. On failure: fix root cause, repeat
|
| 80 |
-
|
| 81 |
-
- Read logs; reproduce locally when possible (`pytest`, targeted scripts,
|
| 82 |
-
`kokoro.js` tests if relevant, matching what failed).
|
| 83 |
-
- Fix the **underlying issue**—not symptoms only—then **commit** (again via
|
| 84 |
-
**`git-commit`** when there are new changes) and **push**, then **re-watch**
|
| 85 |
-
CI.
|
| 86 |
-
- **Loop** until green or until you hit a blocker (permissions, flaky external,
|
| 87 |
-
ambiguous product intent).
|
| 88 |
-
|
| 89 |
-
### 6. Coverage and quality gates
|
| 90 |
-
|
| 91 |
-
- If CI fails because **test coverage** (or a similar **required threshold**)
|
| 92 |
-
is not met:<br />
|
| 93 |
-
**Never satisfy the gate by lowering the threshold or disabling checks** as
|
| 94 |
-
a shortcut.
|
| 95 |
-
- Correct response: **add or strengthen tests**, **exercise untested paths**,
|
| 96 |
-
or **refactor for testability** so coverage **earns** the bar.
|
| 97 |
-
|
| 98 |
-
## Anti-patterns
|
| 99 |
-
|
| 100 |
-
- Pushing with a dirty tree (except when every pending change is intentionally
|
| 101 |
-
left out—and then say so explicitly; default is commit first).
|
| 102 |
-
- Force-push to shared branches without explicit approval.
|
| 103 |
-
- “Fixing” CI by weakening lint, coverage, or type gates.
|
| 104 |
-
- Re-running CI repeatedly without changing what failed.
|
| 105 |
-
|
| 106 |
-
## Related skills
|
| 107 |
-
|
| 108 |
-
- **`git-commit`**: message shape and default **whole-tree** staging (unless a
|
| 109 |
-
narrower parent workflow applies).
|
| 110 |
-
- **`execute-plan`**: may narrow what gets committed **per phase**; this skill
|
| 111 |
-
still applies to the **push / merge / CI loop** once commits are ready.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/markdown/SKILL.md
DELETED
|
@@ -1,55 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: markdown
|
| 3 |
-
description: Write or repair repo markdown files. Use when the task is editing README files, guides, plans, notes, or markdown lint failures. Apply the repo's markdown rules, preserve the right template or document structure, and keep prose tight. Do not use for inline code comments or code changes that only happen to touch markdown strings.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Markdown
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Use this skill to keep repo markdown clean, consistent, and easy to maintain.
|
| 11 |
-
|
| 12 |
-
## Use When
|
| 13 |
-
|
| 14 |
-
- Writing or revising markdown docs.
|
| 15 |
-
- Fixing markdown lint failures.
|
| 16 |
-
- Editing plans, notes, guides, or README files.
|
| 17 |
-
|
| 18 |
-
## Do Not Use When
|
| 19 |
-
|
| 20 |
-
- The real task is inline code documentation.
|
| 21 |
-
- The work is code implementation, not doc authoring.
|
| 22 |
-
- The file is not markdown.
|
| 23 |
-
|
| 24 |
-
## Procedure
|
| 25 |
-
|
| 26 |
-
1. Read [references/index.md](references/index.md) first.
|
| 27 |
-
2. Identify the document family:
|
| 28 |
-
- guide
|
| 29 |
-
- note
|
| 30 |
-
- plan
|
| 31 |
-
- general README or content doc
|
| 32 |
-
3. Use the canonical template when the document family has one.
|
| 33 |
-
4. Preserve the existing structure of the doc family unless the task is
|
| 34 |
-
explicitly a reorganization.
|
| 35 |
-
5. Apply the repo markdown rules:
|
| 36 |
-
- real markdown links, not bare URLs
|
| 37 |
-
- no unnecessary inline HTML
|
| 38 |
-
- blank lines around headings and lists
|
| 39 |
-
- language-tagged fenced code blocks when known
|
| 40 |
-
- single trailing newline
|
| 41 |
-
6. Keep prose lean. Prefer one canonical explanation over duplicated text across
|
| 42 |
-
several files.
|
| 43 |
-
7. If the task is markdown-focused or touches several markdown files, run a
|
| 44 |
-
markdown lint pass before stopping when repo tooling is available.
|
| 45 |
-
|
| 46 |
-
## References
|
| 47 |
-
|
| 48 |
-
Read [references/index.md](references/index.md) first.
|
| 49 |
-
|
| 50 |
-
## Handoff Rules
|
| 51 |
-
|
| 52 |
-
- Hand off to `documentation` if the real work is inline code docs rather than
|
| 53 |
-
markdown documents.
|
| 54 |
-
- Hand off to `write-notes` if the main question is where a note belongs and how
|
| 55 |
-
to consolidate it without note sprawl.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/markdown/references/index.md
DELETED
|
@@ -1,14 +0,0 @@
|
|
| 1 |
-
# Markdown References
|
| 2 |
-
|
| 3 |
-
Canonical docs for `markdown`.
|
| 4 |
-
|
| 5 |
-
- `README/Guides/content/markdown-authoring-guide.md`
|
| 6 |
-
Read first for the repo's markdown rules and markdown-specific verification
|
| 7 |
-
flow.
|
| 8 |
-
- `README/Templates/Plans-template.md`
|
| 9 |
-
Read when the markdown file is a plan under `README/Plans/...`.
|
| 10 |
-
- `README/Templates/Notes-template.md`
|
| 11 |
-
Read when the markdown file is a notes entry under `README/Notes/...`.
|
| 12 |
-
- `README/Guides/content/notes-consolidation-guide.md`
|
| 13 |
-
Read when the markdown edit touches notes and you need to avoid creating note
|
| 14 |
-
sprawl.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/phase-audit/SKILL.md
DELETED
|
@@ -1,77 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: phase-audit
|
| 3 |
-
description: Audit a completed plan phase in this repo. Use when a phase has just been implemented and needs a findings-first review against the active plan, changed files, linked guides, and the canonical audit rubric before commit or before moving to the next phase. Do not use for implementing fixes, broad product critique, or replacing tests and CI execution.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Phase Audit
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Use this skill to audit a completed implementation phase like a skeptical
|
| 11 |
-
senior engineer doing code review. The job is to decide whether the phase is actually complete and ready to commit or push, not to help implement it.
|
| 12 |
-
|
| 13 |
-
## Use When
|
| 14 |
-
|
| 15 |
-
- A plan phase was just implemented.
|
| 16 |
-
- The current plan checkboxes need validation against reality.
|
| 17 |
-
- The repo needs a findings-first review before commit or before moving to the
|
| 18 |
-
next phase.
|
| 19 |
-
|
| 20 |
-
## Do Not Use When
|
| 21 |
-
|
| 22 |
-
- The request is to implement or patch code.
|
| 23 |
-
- The request is broad product or UX feedback.
|
| 24 |
-
- The request is to replace tests, CI, or runtime verification with a code
|
| 25 |
-
review.
|
| 26 |
-
|
| 27 |
-
## Procedure
|
| 28 |
-
|
| 29 |
-
1. Read [references/index.md](references/index.md) first.
|
| 30 |
-
2. Read the active plan and isolate the exact phase being audited:
|
| 31 |
-
- phase goal
|
| 32 |
-
- checked tasks
|
| 33 |
-
- phase verification text
|
| 34 |
-
- linked canonical references in [README/Skills](../../../README/Skills),
|
| 35 |
-
[README/Guides](../../../README/Guides), and [README/Notes](../../../README/Notes)
|
| 36 |
-
3. Inspect the implementation evidence:
|
| 37 |
-
- changed files and diffs
|
| 38 |
-
- tests or checks that were run
|
| 39 |
-
- any notes that explain scope decisions
|
| 40 |
-
4. Compare the implementation against the canonical rubric and linked guides.
|
| 41 |
-
5. Produce a findings-first audit:
|
| 42 |
-
- severity ordered
|
| 43 |
-
- concrete file references when applicable
|
| 44 |
-
- explicit call on whether the phase is complete
|
| 45 |
-
6. Explicitly check:
|
| 46 |
-
- missing scope
|
| 47 |
-
- missing edge cases
|
| 48 |
-
- missing tests or weak verification
|
| 49 |
-
- checkbox drift between the plan and the code
|
| 50 |
-
- commit readiness
|
| 51 |
-
- push and CI readiness
|
| 52 |
-
7. If there are no findings, say so directly and note residual risks or
|
| 53 |
-
verification gaps.
|
| 54 |
-
|
| 55 |
-
## Output Contract
|
| 56 |
-
|
| 57 |
-
- Findings first.
|
| 58 |
-
- Severity ordered.
|
| 59 |
-
- Concrete file references when applicable.
|
| 60 |
-
- Brief summary only after the findings.
|
| 61 |
-
|
| 62 |
-
## Boundaries
|
| 63 |
-
|
| 64 |
-
- Do not edit files.
|
| 65 |
-
- Do not silently fix the problem instead of reporting it.
|
| 66 |
-
- Do not replace tests, CI, or runtime verification with review prose.
|
| 67 |
-
|
| 68 |
-
## Canonical Docs
|
| 69 |
-
|
| 70 |
-
Read [references/index.md](references/index.md) first. It maps the workflow
|
| 71 |
-
guide, the audit rubric, and the repo artifacts that define whether a phase is
|
| 72 |
-
actually done.
|
| 73 |
-
|
| 74 |
-
## Handoff Rules
|
| 75 |
-
|
| 76 |
-
- Hand findings back to `execute-plan` or the user for remediation.
|
| 77 |
-
- Re-run this skill after fixes if the phase changed materially.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/phase-audit/references/index.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
| 1 |
-
# Phase Audit References
|
| 2 |
-
|
| 3 |
-
Canonical docs for `phase-audit` live under **`README/Skills/`**:
|
| 4 |
-
|
| 5 |
-
- `README/Skills/plan-workflow-skills-guide.md`
|
| 6 |
-
Read first for the shared workflow contract and the boundary between
|
| 7 |
-
`phase-audit` and `execute-plan`.
|
| 8 |
-
- `README/Skills/phase-audit-rubric.md`
|
| 9 |
-
Read for the canonical review checklist and commit-readiness criteria.
|
| 10 |
-
- `README/Templates/Plans-template.md`
|
| 11 |
-
Read when you need to validate whether the active plan phase, checkbox
|
| 12 |
-
updates, and verification text still match the template contract.
|
| 13 |
-
|
| 14 |
-
Always inspect:
|
| 15 |
-
|
| 16 |
-
- the active plan file and the specific phase being audited
|
| 17 |
-
- the changed files for that phase
|
| 18 |
-
- any directly linked `README/Guides/...`, `README/Notes/...`, or
|
| 19 |
-
`README/Skills/...` files that constrain the implementation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/write-notes/SKILL.md
DELETED
|
@@ -1,62 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
name: write-notes
|
| 3 |
-
description: Write or update repo notes under README/Notes. Use when the user wants debugging notes, investigation notes, audit notes, or institutional memory captured in the repo. Prefer updating the right high-level notes document over creating a fresh file for every session. Do not use for plans, README guides, or inline code comments.
|
| 4 |
-
---
|
| 5 |
-
|
| 6 |
-
# Write Notes
|
| 7 |
-
|
| 8 |
-
## Purpose
|
| 9 |
-
|
| 10 |
-
Capture useful institutional memory in `README/Notes/` without creating note
|
| 11 |
-
sprawl.
|
| 12 |
-
|
| 13 |
-
## Use When
|
| 14 |
-
|
| 15 |
-
- The user wants a bug, investigation, audit, or debugging trail captured in
|
| 16 |
-
repo notes.
|
| 17 |
-
- A change should leave behind durable troubleshooting context.
|
| 18 |
-
- An existing notes bundle should be updated with a new issue section.
|
| 19 |
-
|
| 20 |
-
## Do Not Use When
|
| 21 |
-
|
| 22 |
-
- The user wants a plan.
|
| 23 |
-
- The output belongs in a guide or README instead of `README/Notes/`.
|
| 24 |
-
- The content is really inline code documentation.
|
| 25 |
-
- The note would be throwaway session chatter with no lasting value.
|
| 26 |
-
|
| 27 |
-
## Procedure
|
| 28 |
-
|
| 29 |
-
1. Read [references/index.md](references/index.md) first.
|
| 30 |
-
2. Scan `README/Notes/` for the best existing home before creating any new
|
| 31 |
-
file.
|
| 32 |
-
3. Default to consolidation:
|
| 33 |
-
- update the right high-level domain note file
|
| 34 |
-
- add a new issue section inside that file
|
| 35 |
-
- keep the issue self-contained with the notes-template structure
|
| 36 |
-
4. Create a new notes file only when the topic is durable enough to deserve its
|
| 37 |
-
own entry point:
|
| 38 |
-
- recurring subsystem problem
|
| 39 |
-
- cross-cutting audit
|
| 40 |
-
- report likely to be searched directly later
|
| 41 |
-
5. Use topic-based names for new files. Do not create a new file just because
|
| 42 |
-
there is a new date or session.
|
| 43 |
-
6. Keep the note high signal:
|
| 44 |
-
- summary
|
| 45 |
-
- symptom
|
| 46 |
-
- root cause or `TBD`
|
| 47 |
-
- related guides
|
| 48 |
-
- fix or current status
|
| 49 |
-
- verification or next step
|
| 50 |
-
7. Keep active issues near the top. Convert fixed issues to resolved status and
|
| 51 |
-
prune dead investigation branches after resolution.
|
| 52 |
-
|
| 53 |
-
## References
|
| 54 |
-
|
| 55 |
-
Read [references/index.md](references/index.md) first.
|
| 56 |
-
|
| 57 |
-
## Handoff Rules
|
| 58 |
-
|
| 59 |
-
- Hand off to `markdown` when the real task is markdown cleanup rather than note
|
| 60 |
-
placement or note structure.
|
| 61 |
-
- Hand off to `create-plan` when the user wants a real implementation plan
|
| 62 |
-
instead of notes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.claude/skills/write-notes/references/index.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
| 1 |
-
# Write Notes References
|
| 2 |
-
|
| 3 |
-
Canonical docs for `write-notes`.
|
| 4 |
-
|
| 5 |
-
- `README/Guides/content/notes-consolidation-guide.md`
|
| 6 |
-
Read first for the repo's anti-sprawl notes policy and file-selection rules.
|
| 7 |
-
- `README/Templates/Notes-template.md`
|
| 8 |
-
Read for the required issue structure inside a notes document.
|
| 9 |
-
- the most relevant `README/Guides/...` files for the subsystem
|
| 10 |
-
Read when the note should link out to canonical guidance for context or
|
| 11 |
-
recurrence handling.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.github/FUNDING.yml
DELETED
|
@@ -1,15 +0,0 @@
|
|
| 1 |
-
# These are supported funding model platforms
|
| 2 |
-
|
| 3 |
-
github: hexgrad # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
| 4 |
-
patreon: # Replace with a single Patreon username
|
| 5 |
-
open_collective: # Replace with a single Open Collective username
|
| 6 |
-
ko_fi: # Replace with a single Ko-fi username
|
| 7 |
-
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
| 8 |
-
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
| 9 |
-
liberapay: # Replace with a single Liberapay username
|
| 10 |
-
issuehunt: # Replace with a single IssueHunt username
|
| 11 |
-
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
| 12 |
-
polar: # Replace with a single Polar username
|
| 13 |
-
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
| 14 |
-
thanks_dev: # Replace with a single thanks.dev username
|
| 15 |
-
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.gitignore
DELETED
|
@@ -1,178 +0,0 @@
|
|
| 1 |
-
# Byte-compiled / optimized / DLL files
|
| 2 |
-
__pycache__/
|
| 3 |
-
*.py[cod]
|
| 4 |
-
*$py.class
|
| 5 |
-
|
| 6 |
-
# C extensions
|
| 7 |
-
*.so
|
| 8 |
-
|
| 9 |
-
# Distribution / packaging
|
| 10 |
-
.Python
|
| 11 |
-
build/
|
| 12 |
-
develop-eggs/
|
| 13 |
-
dist/
|
| 14 |
-
downloads/
|
| 15 |
-
eggs/
|
| 16 |
-
.eggs/
|
| 17 |
-
lib/
|
| 18 |
-
lib64/
|
| 19 |
-
parts/
|
| 20 |
-
sdist/
|
| 21 |
-
var/
|
| 22 |
-
wheels/
|
| 23 |
-
share/python-wheels/
|
| 24 |
-
*.egg-info/
|
| 25 |
-
.installed.cfg
|
| 26 |
-
*.egg
|
| 27 |
-
MANIFEST
|
| 28 |
-
|
| 29 |
-
# PyInstaller
|
| 30 |
-
# Usually these files are written by a python script from a template
|
| 31 |
-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
| 32 |
-
*.manifest
|
| 33 |
-
*.spec
|
| 34 |
-
|
| 35 |
-
# Installer logs
|
| 36 |
-
pip-log.txt
|
| 37 |
-
pip-delete-this-directory.txt
|
| 38 |
-
|
| 39 |
-
# Unit test / coverage reports
|
| 40 |
-
htmlcov/
|
| 41 |
-
.tox/
|
| 42 |
-
.nox/
|
| 43 |
-
.coverage
|
| 44 |
-
.coverage.*
|
| 45 |
-
.cache
|
| 46 |
-
nosetests.xml
|
| 47 |
-
coverage.xml
|
| 48 |
-
*.cover
|
| 49 |
-
*.py,cover
|
| 50 |
-
.hypothesis/
|
| 51 |
-
.pytest_cache/
|
| 52 |
-
cover/
|
| 53 |
-
|
| 54 |
-
# Translations
|
| 55 |
-
*.mo
|
| 56 |
-
*.pot
|
| 57 |
-
|
| 58 |
-
# Django stuff:
|
| 59 |
-
*.log
|
| 60 |
-
local_settings.py
|
| 61 |
-
db.sqlite3
|
| 62 |
-
db.sqlite3-journal
|
| 63 |
-
|
| 64 |
-
# Flask stuff:
|
| 65 |
-
instance/
|
| 66 |
-
.webassets-cache
|
| 67 |
-
|
| 68 |
-
# Scrapy stuff:
|
| 69 |
-
.scrapy
|
| 70 |
-
|
| 71 |
-
# Sphinx documentation
|
| 72 |
-
docs/_build/
|
| 73 |
-
|
| 74 |
-
# PyBuilder
|
| 75 |
-
.pybuilder/
|
| 76 |
-
target/
|
| 77 |
-
|
| 78 |
-
# Jupyter Notebook
|
| 79 |
-
.ipynb_checkpoints
|
| 80 |
-
|
| 81 |
-
# IPython
|
| 82 |
-
profile_default/
|
| 83 |
-
ipython_config.py
|
| 84 |
-
|
| 85 |
-
# pyenv
|
| 86 |
-
# For a library or package, you might want to ignore these files since the code is
|
| 87 |
-
# intended to run in multiple environments; otherwise, check them in:
|
| 88 |
-
# .python-version
|
| 89 |
-
|
| 90 |
-
# pipenv
|
| 91 |
-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
| 92 |
-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
| 93 |
-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
| 94 |
-
# install all needed dependencies.
|
| 95 |
-
#Pipfile.lock
|
| 96 |
-
|
| 97 |
-
# UV
|
| 98 |
-
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
|
| 99 |
-
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
| 100 |
-
# commonly ignored for libraries.
|
| 101 |
-
#uv.lock
|
| 102 |
-
|
| 103 |
-
# poetry
|
| 104 |
-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
| 105 |
-
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
| 106 |
-
# commonly ignored for libraries.
|
| 107 |
-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
| 108 |
-
#poetry.lock
|
| 109 |
-
|
| 110 |
-
# pdm
|
| 111 |
-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
| 112 |
-
#pdm.lock
|
| 113 |
-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
| 114 |
-
# in version control.
|
| 115 |
-
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
| 116 |
-
.pdm.toml
|
| 117 |
-
.pdm-python
|
| 118 |
-
.pdm-build/
|
| 119 |
-
|
| 120 |
-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
| 121 |
-
__pypackages__/
|
| 122 |
-
|
| 123 |
-
# Celery stuff
|
| 124 |
-
celerybeat-schedule
|
| 125 |
-
celerybeat.pid
|
| 126 |
-
|
| 127 |
-
# SageMath parsed files
|
| 128 |
-
*.sage.py
|
| 129 |
-
|
| 130 |
-
# Environments
|
| 131 |
-
.env
|
| 132 |
-
.venv
|
| 133 |
-
env/
|
| 134 |
-
venv/
|
| 135 |
-
ENV/
|
| 136 |
-
env.bak/
|
| 137 |
-
venv.bak/
|
| 138 |
-
|
| 139 |
-
# Spyder project settings
|
| 140 |
-
.spyderproject
|
| 141 |
-
.spyproject
|
| 142 |
-
|
| 143 |
-
# Rope project settings
|
| 144 |
-
.ropeproject
|
| 145 |
-
|
| 146 |
-
# mkdocs documentation
|
| 147 |
-
/site
|
| 148 |
-
|
| 149 |
-
# mypy
|
| 150 |
-
.mypy_cache/
|
| 151 |
-
.dmypy.json
|
| 152 |
-
dmypy.json
|
| 153 |
-
|
| 154 |
-
# Pyre type checker
|
| 155 |
-
.pyre/
|
| 156 |
-
|
| 157 |
-
# pytype static type analyzer
|
| 158 |
-
.pytype/
|
| 159 |
-
|
| 160 |
-
# Cython debug symbols
|
| 161 |
-
cython_debug/
|
| 162 |
-
|
| 163 |
-
# PyCharm
|
| 164 |
-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
| 165 |
-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
| 166 |
-
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
| 167 |
-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
| 168 |
-
#.idea/
|
| 169 |
-
|
| 170 |
-
# PyPI configuration file
|
| 171 |
-
.pypirc
|
| 172 |
-
|
| 173 |
-
# Local TTS debug outputs (WAV/CSV/JSON)
|
| 174 |
-
outputs/
|
| 175 |
-
outputs/**
|
| 176 |
-
|
| 177 |
-
# Local scratch notes (not for version control)
|
| 178 |
-
scratchpad.md
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/Activate.ps1
DELETED
|
@@ -1,247 +0,0 @@
|
|
| 1 |
-
<#
|
| 2 |
-
.Synopsis
|
| 3 |
-
Activate a Python virtual environment for the current PowerShell session.
|
| 4 |
-
|
| 5 |
-
.Description
|
| 6 |
-
Pushes the python executable for a virtual environment to the front of the
|
| 7 |
-
$Env:PATH environment variable and sets the prompt to signify that you are
|
| 8 |
-
in a Python virtual environment. Makes use of the command line switches as
|
| 9 |
-
well as the `pyvenv.cfg` file values present in the virtual environment.
|
| 10 |
-
|
| 11 |
-
.Parameter VenvDir
|
| 12 |
-
Path to the directory that contains the virtual environment to activate. The
|
| 13 |
-
default value for this is the parent of the directory that the Activate.ps1
|
| 14 |
-
script is located within.
|
| 15 |
-
|
| 16 |
-
.Parameter Prompt
|
| 17 |
-
The prompt prefix to display when this virtual environment is activated. By
|
| 18 |
-
default, this prompt is the name of the virtual environment folder (VenvDir)
|
| 19 |
-
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
|
| 20 |
-
|
| 21 |
-
.Example
|
| 22 |
-
Activate.ps1
|
| 23 |
-
Activates the Python virtual environment that contains the Activate.ps1 script.
|
| 24 |
-
|
| 25 |
-
.Example
|
| 26 |
-
Activate.ps1 -Verbose
|
| 27 |
-
Activates the Python virtual environment that contains the Activate.ps1 script,
|
| 28 |
-
and shows extra information about the activation as it executes.
|
| 29 |
-
|
| 30 |
-
.Example
|
| 31 |
-
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
|
| 32 |
-
Activates the Python virtual environment located in the specified location.
|
| 33 |
-
|
| 34 |
-
.Example
|
| 35 |
-
Activate.ps1 -Prompt "MyPython"
|
| 36 |
-
Activates the Python virtual environment that contains the Activate.ps1 script,
|
| 37 |
-
and prefixes the current prompt with the specified string (surrounded in
|
| 38 |
-
parentheses) while the virtual environment is active.
|
| 39 |
-
|
| 40 |
-
.Notes
|
| 41 |
-
On Windows, it may be required to enable this Activate.ps1 script by setting the
|
| 42 |
-
execution policy for the user. You can do this by issuing the following PowerShell
|
| 43 |
-
command:
|
| 44 |
-
|
| 45 |
-
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
| 46 |
-
|
| 47 |
-
For more information on Execution Policies:
|
| 48 |
-
https://go.microsoft.com/fwlink/?LinkID=135170
|
| 49 |
-
|
| 50 |
-
#>
|
| 51 |
-
Param(
|
| 52 |
-
[Parameter(Mandatory = $false)]
|
| 53 |
-
[String]
|
| 54 |
-
$VenvDir,
|
| 55 |
-
[Parameter(Mandatory = $false)]
|
| 56 |
-
[String]
|
| 57 |
-
$Prompt
|
| 58 |
-
)
|
| 59 |
-
|
| 60 |
-
<# Function declarations --------------------------------------------------- #>
|
| 61 |
-
|
| 62 |
-
<#
|
| 63 |
-
.Synopsis
|
| 64 |
-
Remove all shell session elements added by the Activate script, including the
|
| 65 |
-
addition of the virtual environment's Python executable from the beginning of
|
| 66 |
-
the PATH variable.
|
| 67 |
-
|
| 68 |
-
.Parameter NonDestructive
|
| 69 |
-
If present, do not remove this function from the global namespace for the
|
| 70 |
-
session.
|
| 71 |
-
|
| 72 |
-
#>
|
| 73 |
-
function global:deactivate ([switch]$NonDestructive) {
|
| 74 |
-
# Revert to original values
|
| 75 |
-
|
| 76 |
-
# The prior prompt:
|
| 77 |
-
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
|
| 78 |
-
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
|
| 79 |
-
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
|
| 80 |
-
}
|
| 81 |
-
|
| 82 |
-
# The prior PYTHONHOME:
|
| 83 |
-
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
|
| 84 |
-
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
|
| 85 |
-
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
|
| 86 |
-
}
|
| 87 |
-
|
| 88 |
-
# The prior PATH:
|
| 89 |
-
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
|
| 90 |
-
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
|
| 91 |
-
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
|
| 92 |
-
}
|
| 93 |
-
|
| 94 |
-
# Just remove the VIRTUAL_ENV altogether:
|
| 95 |
-
if (Test-Path -Path Env:VIRTUAL_ENV) {
|
| 96 |
-
Remove-Item -Path env:VIRTUAL_ENV
|
| 97 |
-
}
|
| 98 |
-
|
| 99 |
-
# Just remove VIRTUAL_ENV_PROMPT altogether.
|
| 100 |
-
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
|
| 101 |
-
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
|
| 102 |
-
}
|
| 103 |
-
|
| 104 |
-
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
|
| 105 |
-
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
|
| 106 |
-
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
|
| 107 |
-
}
|
| 108 |
-
|
| 109 |
-
# Leave deactivate function in the global namespace if requested:
|
| 110 |
-
if (-not $NonDestructive) {
|
| 111 |
-
Remove-Item -Path function:deactivate
|
| 112 |
-
}
|
| 113 |
-
}
|
| 114 |
-
|
| 115 |
-
<#
|
| 116 |
-
.Description
|
| 117 |
-
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
|
| 118 |
-
given folder, and returns them in a map.
|
| 119 |
-
|
| 120 |
-
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
|
| 121 |
-
two strings separated by `=` (with any amount of whitespace surrounding the =)
|
| 122 |
-
then it is considered a `key = value` line. The left hand string is the key,
|
| 123 |
-
the right hand is the value.
|
| 124 |
-
|
| 125 |
-
If the value starts with a `'` or a `"` then the first and last character is
|
| 126 |
-
stripped from the value before being captured.
|
| 127 |
-
|
| 128 |
-
.Parameter ConfigDir
|
| 129 |
-
Path to the directory that contains the `pyvenv.cfg` file.
|
| 130 |
-
#>
|
| 131 |
-
function Get-PyVenvConfig(
|
| 132 |
-
[String]
|
| 133 |
-
$ConfigDir
|
| 134 |
-
) {
|
| 135 |
-
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
|
| 136 |
-
|
| 137 |
-
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
|
| 138 |
-
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
|
| 139 |
-
|
| 140 |
-
# An empty map will be returned if no config file is found.
|
| 141 |
-
$pyvenvConfig = @{ }
|
| 142 |
-
|
| 143 |
-
if ($pyvenvConfigPath) {
|
| 144 |
-
|
| 145 |
-
Write-Verbose "File exists, parse `key = value` lines"
|
| 146 |
-
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
|
| 147 |
-
|
| 148 |
-
$pyvenvConfigContent | ForEach-Object {
|
| 149 |
-
$keyval = $PSItem -split "\s*=\s*", 2
|
| 150 |
-
if ($keyval[0] -and $keyval[1]) {
|
| 151 |
-
$val = $keyval[1]
|
| 152 |
-
|
| 153 |
-
# Remove extraneous quotations around a string value.
|
| 154 |
-
if ("'""".Contains($val.Substring(0, 1))) {
|
| 155 |
-
$val = $val.Substring(1, $val.Length - 2)
|
| 156 |
-
}
|
| 157 |
-
|
| 158 |
-
$pyvenvConfig[$keyval[0]] = $val
|
| 159 |
-
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
|
| 160 |
-
}
|
| 161 |
-
}
|
| 162 |
-
}
|
| 163 |
-
return $pyvenvConfig
|
| 164 |
-
}
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
<# Begin Activate script --------------------------------------------------- #>
|
| 168 |
-
|
| 169 |
-
# Determine the containing directory of this script
|
| 170 |
-
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
| 171 |
-
$VenvExecDir = Get-Item -Path $VenvExecPath
|
| 172 |
-
|
| 173 |
-
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
|
| 174 |
-
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
|
| 175 |
-
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
|
| 176 |
-
|
| 177 |
-
# Set values required in priority: CmdLine, ConfigFile, Default
|
| 178 |
-
# First, get the location of the virtual environment, it might not be
|
| 179 |
-
# VenvExecDir if specified on the command line.
|
| 180 |
-
if ($VenvDir) {
|
| 181 |
-
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
|
| 182 |
-
}
|
| 183 |
-
else {
|
| 184 |
-
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
|
| 185 |
-
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
|
| 186 |
-
Write-Verbose "VenvDir=$VenvDir"
|
| 187 |
-
}
|
| 188 |
-
|
| 189 |
-
# Next, read the `pyvenv.cfg` file to determine any required value such
|
| 190 |
-
# as `prompt`.
|
| 191 |
-
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
|
| 192 |
-
|
| 193 |
-
# Next, set the prompt from the command line, or the config file, or
|
| 194 |
-
# just use the name of the virtual environment folder.
|
| 195 |
-
if ($Prompt) {
|
| 196 |
-
Write-Verbose "Prompt specified as argument, using '$Prompt'"
|
| 197 |
-
}
|
| 198 |
-
else {
|
| 199 |
-
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
|
| 200 |
-
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
|
| 201 |
-
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
|
| 202 |
-
$Prompt = $pyvenvCfg['prompt'];
|
| 203 |
-
}
|
| 204 |
-
else {
|
| 205 |
-
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"
|
| 206 |
-
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
|
| 207 |
-
$Prompt = Split-Path -Path $venvDir -Leaf
|
| 208 |
-
}
|
| 209 |
-
}
|
| 210 |
-
|
| 211 |
-
Write-Verbose "Prompt = '$Prompt'"
|
| 212 |
-
Write-Verbose "VenvDir='$VenvDir'"
|
| 213 |
-
|
| 214 |
-
# Deactivate any currently active virtual environment, but leave the
|
| 215 |
-
# deactivate function in place.
|
| 216 |
-
deactivate -nondestructive
|
| 217 |
-
|
| 218 |
-
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
|
| 219 |
-
# that there is an activated venv.
|
| 220 |
-
$env:VIRTUAL_ENV = $VenvDir
|
| 221 |
-
|
| 222 |
-
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
| 223 |
-
|
| 224 |
-
Write-Verbose "Setting prompt to '$Prompt'"
|
| 225 |
-
|
| 226 |
-
# Set the prompt to include the env name
|
| 227 |
-
# Make sure _OLD_VIRTUAL_PROMPT is global
|
| 228 |
-
function global:_OLD_VIRTUAL_PROMPT { "" }
|
| 229 |
-
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
|
| 230 |
-
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
|
| 231 |
-
|
| 232 |
-
function global:prompt {
|
| 233 |
-
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
|
| 234 |
-
_OLD_VIRTUAL_PROMPT
|
| 235 |
-
}
|
| 236 |
-
$env:VIRTUAL_ENV_PROMPT = $Prompt
|
| 237 |
-
}
|
| 238 |
-
|
| 239 |
-
# Clear PYTHONHOME
|
| 240 |
-
if (Test-Path -Path Env:PYTHONHOME) {
|
| 241 |
-
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
|
| 242 |
-
Remove-Item -Path Env:PYTHONHOME
|
| 243 |
-
}
|
| 244 |
-
|
| 245 |
-
# Add the venv to the PATH
|
| 246 |
-
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
|
| 247 |
-
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/activate
DELETED
|
@@ -1,69 +0,0 @@
|
|
| 1 |
-
# This file must be used with "source bin/activate" *from bash*
|
| 2 |
-
# you cannot run it directly
|
| 3 |
-
|
| 4 |
-
deactivate () {
|
| 5 |
-
# reset old environment variables
|
| 6 |
-
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
|
| 7 |
-
PATH="${_OLD_VIRTUAL_PATH:-}"
|
| 8 |
-
export PATH
|
| 9 |
-
unset _OLD_VIRTUAL_PATH
|
| 10 |
-
fi
|
| 11 |
-
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
|
| 12 |
-
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
|
| 13 |
-
export PYTHONHOME
|
| 14 |
-
unset _OLD_VIRTUAL_PYTHONHOME
|
| 15 |
-
fi
|
| 16 |
-
|
| 17 |
-
# This should detect bash and zsh, which have a hash command that must
|
| 18 |
-
# be called to get it to forget past commands. Without forgetting
|
| 19 |
-
# past commands the $PATH changes we made may not be respected
|
| 20 |
-
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
| 21 |
-
hash -r 2> /dev/null
|
| 22 |
-
fi
|
| 23 |
-
|
| 24 |
-
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
| 25 |
-
PS1="${_OLD_VIRTUAL_PS1:-}"
|
| 26 |
-
export PS1
|
| 27 |
-
unset _OLD_VIRTUAL_PS1
|
| 28 |
-
fi
|
| 29 |
-
|
| 30 |
-
unset VIRTUAL_ENV
|
| 31 |
-
unset VIRTUAL_ENV_PROMPT
|
| 32 |
-
if [ ! "${1:-}" = "nondestructive" ] ; then
|
| 33 |
-
# Self destruct!
|
| 34 |
-
unset -f deactivate
|
| 35 |
-
fi
|
| 36 |
-
}
|
| 37 |
-
|
| 38 |
-
# unset irrelevant variables
|
| 39 |
-
deactivate nondestructive
|
| 40 |
-
|
| 41 |
-
VIRTUAL_ENV="/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml"
|
| 42 |
-
export VIRTUAL_ENV
|
| 43 |
-
|
| 44 |
-
_OLD_VIRTUAL_PATH="$PATH"
|
| 45 |
-
PATH="$VIRTUAL_ENV/bin:$PATH"
|
| 46 |
-
export PATH
|
| 47 |
-
|
| 48 |
-
# unset PYTHONHOME if set
|
| 49 |
-
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
|
| 50 |
-
# could use `if (set -u; : $PYTHONHOME) ;` in bash
|
| 51 |
-
if [ -n "${PYTHONHOME:-}" ] ; then
|
| 52 |
-
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
|
| 53 |
-
unset PYTHONHOME
|
| 54 |
-
fi
|
| 55 |
-
|
| 56 |
-
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
| 57 |
-
_OLD_VIRTUAL_PS1="${PS1:-}"
|
| 58 |
-
PS1="(.venv-coreml) ${PS1:-}"
|
| 59 |
-
export PS1
|
| 60 |
-
VIRTUAL_ENV_PROMPT="(.venv-coreml) "
|
| 61 |
-
export VIRTUAL_ENV_PROMPT
|
| 62 |
-
fi
|
| 63 |
-
|
| 64 |
-
# This should detect bash and zsh, which have a hash command that must
|
| 65 |
-
# be called to get it to forget past commands. Without forgetting
|
| 66 |
-
# past commands the $PATH changes we made may not be respected
|
| 67 |
-
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
|
| 68 |
-
hash -r 2> /dev/null
|
| 69 |
-
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/activate.csh
DELETED
|
@@ -1,26 +0,0 @@
|
|
| 1 |
-
# This file must be used with "source bin/activate.csh" *from csh*.
|
| 2 |
-
# You cannot run it directly.
|
| 3 |
-
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
| 4 |
-
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
|
| 5 |
-
|
| 6 |
-
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
|
| 7 |
-
|
| 8 |
-
# Unset irrelevant variables.
|
| 9 |
-
deactivate nondestructive
|
| 10 |
-
|
| 11 |
-
setenv VIRTUAL_ENV "/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml"
|
| 12 |
-
|
| 13 |
-
set _OLD_VIRTUAL_PATH="$PATH"
|
| 14 |
-
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
set _OLD_VIRTUAL_PROMPT="$prompt"
|
| 18 |
-
|
| 19 |
-
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
| 20 |
-
set prompt = "(.venv-coreml) $prompt"
|
| 21 |
-
setenv VIRTUAL_ENV_PROMPT "(.venv-coreml) "
|
| 22 |
-
endif
|
| 23 |
-
|
| 24 |
-
alias pydoc python -m pydoc
|
| 25 |
-
|
| 26 |
-
rehash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/activate.fish
DELETED
|
@@ -1,66 +0,0 @@
|
|
| 1 |
-
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
|
| 2 |
-
# (https://fishshell.com/); you cannot run it directly.
|
| 3 |
-
|
| 4 |
-
function deactivate -d "Exit virtual environment and return to normal shell environment"
|
| 5 |
-
# reset old environment variables
|
| 6 |
-
if test -n "$_OLD_VIRTUAL_PATH"
|
| 7 |
-
set -gx PATH $_OLD_VIRTUAL_PATH
|
| 8 |
-
set -e _OLD_VIRTUAL_PATH
|
| 9 |
-
end
|
| 10 |
-
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
| 11 |
-
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
|
| 12 |
-
set -e _OLD_VIRTUAL_PYTHONHOME
|
| 13 |
-
end
|
| 14 |
-
|
| 15 |
-
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
| 16 |
-
functions -e fish_prompt
|
| 17 |
-
set -e _OLD_FISH_PROMPT_OVERRIDE
|
| 18 |
-
functions -c _old_fish_prompt fish_prompt
|
| 19 |
-
functions -e _old_fish_prompt
|
| 20 |
-
end
|
| 21 |
-
|
| 22 |
-
set -e VIRTUAL_ENV
|
| 23 |
-
set -e VIRTUAL_ENV_PROMPT
|
| 24 |
-
if test "$argv[1]" != "nondestructive"
|
| 25 |
-
# Self-destruct!
|
| 26 |
-
functions -e deactivate
|
| 27 |
-
end
|
| 28 |
-
end
|
| 29 |
-
|
| 30 |
-
# Unset irrelevant variables.
|
| 31 |
-
deactivate nondestructive
|
| 32 |
-
|
| 33 |
-
set -gx VIRTUAL_ENV "/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml"
|
| 34 |
-
|
| 35 |
-
set -gx _OLD_VIRTUAL_PATH $PATH
|
| 36 |
-
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
|
| 37 |
-
|
| 38 |
-
# Unset PYTHONHOME if set.
|
| 39 |
-
if set -q PYTHONHOME
|
| 40 |
-
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
| 41 |
-
set -e PYTHONHOME
|
| 42 |
-
end
|
| 43 |
-
|
| 44 |
-
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
| 45 |
-
# fish uses a function instead of an env var to generate the prompt.
|
| 46 |
-
|
| 47 |
-
# Save the current fish_prompt function as the function _old_fish_prompt.
|
| 48 |
-
functions -c fish_prompt _old_fish_prompt
|
| 49 |
-
|
| 50 |
-
# With the original prompt function renamed, we can override with our own.
|
| 51 |
-
function fish_prompt
|
| 52 |
-
# Save the return status of the last command.
|
| 53 |
-
set -l old_status $status
|
| 54 |
-
|
| 55 |
-
# Output the venv prompt; color taken from the blue of the Python logo.
|
| 56 |
-
printf "%s%s%s" (set_color 4B8BBE) "(.venv-coreml) " (set_color normal)
|
| 57 |
-
|
| 58 |
-
# Restore the return status of the previous command.
|
| 59 |
-
echo "exit $old_status" | .
|
| 60 |
-
# Output the original/"old" prompt.
|
| 61 |
-
_old_fish_prompt
|
| 62 |
-
end
|
| 63 |
-
|
| 64 |
-
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
| 65 |
-
set -gx VIRTUAL_ENV_PROMPT "(.venv-coreml) "
|
| 66 |
-
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/convert-caffe2-to-onnx
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from caffe2.python.onnx.bin.conversion import caffe2_to_onnx
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(caffe2_to_onnx())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/convert-onnx-to-caffe2
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from caffe2.python.onnx.bin.conversion import onnx_to_caffe2
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(onnx_to_caffe2())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csv2rdf
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from rdflib.tools.csv2rdf import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csvw2datasette
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from csvw.__main__ import csvw2datasette
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(csvw2datasette())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csvw2json
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from csvw.__main__ import csvw2json
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(csvw2json())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csvw2markdown
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from csvw.__main__ import csvw2markdown
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(csvw2markdown())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csvw2sqlite
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from csvw.__main__ import csvw2sqlite
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(csvw2sqlite())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csvwdescribe
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from csvw.__main__ import csvwdescribe
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(csvwdescribe())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/csvwvalidate
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from csvw.__main__ import csvwvalidate
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(csvwvalidate())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/espeak-phonemizer
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from espeak_phonemizer.__main__ import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/f2py
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from numpy.f2py.f2py2e import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/hf
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from huggingface_hub.cli.hf import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/huggingface-cli
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from huggingface_hub.commands.huggingface_cli import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/isympy
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from isympy import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/jsonschema
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from jsonschema.cli import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/normalizer
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from charset_normalizer.cli import cli_detect
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(cli_detect())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/phonemize
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from phonemizer.main import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/pip
DELETED
|
@@ -1,8 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
# -*- coding: utf-8 -*-
|
| 3 |
-
import re
|
| 4 |
-
import sys
|
| 5 |
-
from pip._internal.cli.main import main
|
| 6 |
-
if __name__ == '__main__':
|
| 7 |
-
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
| 8 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/pip3
DELETED
|
@@ -1,8 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
# -*- coding: utf-8 -*-
|
| 3 |
-
import re
|
| 4 |
-
import sys
|
| 5 |
-
from pip._internal.cli.main import main
|
| 6 |
-
if __name__ == '__main__':
|
| 7 |
-
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
| 8 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/pip3.10
DELETED
|
@@ -1,8 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
# -*- coding: utf-8 -*-
|
| 3 |
-
import re
|
| 4 |
-
import sys
|
| 5 |
-
from pip._internal.cli.main import main
|
| 6 |
-
if __name__ == '__main__':
|
| 7 |
-
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
| 8 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/pyaml
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from pyaml.cli import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/pybabel
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from babel.messages.frontend import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/rdf2dot
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from rdflib.tools.rdf2dot import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.venv-coreml/bin/rdfgraphisomorphism
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
#!/Users/mattmireles/Documents/GitHub/talktome/kokoro-coreml/.venv-coreml/bin/python3
|
| 2 |
-
import sys
|
| 3 |
-
from rdflib.tools.graphisomorphism import main
|
| 4 |
-
if __name__ == '__main__':
|
| 5 |
-
if sys.argv[0].endswith('.exe'):
|
| 6 |
-
sys.argv[0] = sys.argv[0][:-4]
|
| 7 |
-
sys.exit(main())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|