typescript-project-foundationlisted
Install: claude install-skill MasashiFukuzawa/agent-toolbox
# TypeScript Project Foundation
後から高くつく re-platforming を避ける「最小の完全形」を作る。初期 file 数の少なさを最適化しない。長く残る境界は早期に決め、feature mechanism は要件が正当化した時だけ加える。
## Guardrails
1. 指定がなければ **production-intent** と扱う。`disposable-spike` は、利用者が廃棄期限と終了条件を明示した時だけ選ぶ。
2. 実行時点の公式 starter・公式 documentation・registry metadata を���査する。version や compatibility date を記憶から転記しない。
3. cooling policy を満たす最新の compatible stable release を選ぶ。RC・beta・canary・nightly は明示承認なしに選ばない。
4. file 作成、package install、repository 変更の前に read-only plan を示す。列挙した local 変更は一度の承認でよいが、deployment、remote database、secret、外部 account の変更は常に別途確認する。
5. 生成する再利用可能な guidance に、固有の organization 名、private repository 情報、domain、ID、path、運用 data を混入させない。
6. 判断を対象 repository に永続化する。chat 内だけの plan では判断の再現性を担保できない。
7. 強制可能な invariant は type、schema、lint、test、script、CI のいずれかで実行可能にする。prose-only policy を完成扱いしない。
## Workflow
### 1. Capability と stakes を分類する
preset を選ぶ前に次を確定する。
```text
stakes: production-intent | disposable-spike
runtime: cloudflare-workers | node | browser | library | cli
capabilities: http-api? web-ui? relational-data? async-processing?
durable-coordination? publish-package? multiple-deployables?
tenancy: none | single-tenant | shared-schema | database-per-tenant
user-to-tenant: not-applicable | 1:1 | N:M
```
production-intent product で tenancy または cardinality が不明なら、黙って先送りしない。判断を求めるか、より拡張可能な N:M model を仮採用して assumption を記録する。
preset は出発点としてだけ使う。
- Cloudflare full-stack / Worker API: [Cloudflare profile](references/cloudflare.md)