spinup-ts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/README.md +82 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +96 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/prompts.d.ts +17 -0
  7. package/dist/prompts.d.ts.map +1 -0
  8. package/dist/prompts.js +264 -0
  9. package/dist/prompts.js.map +1 -0
  10. package/dist/scaffold.d.ts +5 -0
  11. package/dist/scaffold.d.ts.map +1 -0
  12. package/dist/scaffold.js +128 -0
  13. package/dist/scaffold.js.map +1 -0
  14. package/dist/transforms/devcontainer.d.ts +3 -0
  15. package/dist/transforms/devcontainer.d.ts.map +1 -0
  16. package/dist/transforms/devcontainer.js +8 -0
  17. package/dist/transforms/devcontainer.js.map +1 -0
  18. package/dist/transforms/docker.d.ts +3 -0
  19. package/dist/transforms/docker.d.ts.map +1 -0
  20. package/dist/transforms/docker.js +11 -0
  21. package/dist/transforms/docker.js.map +1 -0
  22. package/dist/transforms/docs.d.ts +3 -0
  23. package/dist/transforms/docs.d.ts.map +1 -0
  24. package/dist/transforms/docs.js +22 -0
  25. package/dist/transforms/docs.js.map +1 -0
  26. package/dist/transforms/documentation.d.ts +3 -0
  27. package/dist/transforms/documentation.d.ts.map +1 -0
  28. package/dist/transforms/documentation.js +37 -0
  29. package/dist/transforms/documentation.js.map +1 -0
  30. package/dist/transforms/github-actions.d.ts +3 -0
  31. package/dist/transforms/github-actions.d.ts.map +1 -0
  32. package/dist/transforms/github-actions.js +48 -0
  33. package/dist/transforms/github-actions.js.map +1 -0
  34. package/dist/transforms/index.d.ts +3 -0
  35. package/dist/transforms/index.d.ts.map +1 -0
  36. package/dist/transforms/index.js +24 -0
  37. package/dist/transforms/index.js.map +1 -0
  38. package/dist/transforms/license.d.ts +3 -0
  39. package/dist/transforms/license.d.ts.map +1 -0
  40. package/dist/transforms/license.js +19 -0
  41. package/dist/transforms/license.js.map +1 -0
  42. package/dist/transforms/npm-publish.d.ts +3 -0
  43. package/dist/transforms/npm-publish.d.ts.map +1 -0
  44. package/dist/transforms/npm-publish.js +15 -0
  45. package/dist/transforms/npm-publish.js.map +1 -0
  46. package/dist/transforms/package-manager.d.ts +3 -0
  47. package/dist/transforms/package-manager.d.ts.map +1 -0
  48. package/dist/transforms/package-manager.js +31 -0
  49. package/dist/transforms/package-manager.js.map +1 -0
  50. package/dist/types.d.ts +116 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +52 -0
  53. package/dist/types.js.map +1 -0
  54. package/dist/update.d.ts +2 -0
  55. package/dist/update.d.ts.map +1 -0
  56. package/dist/update.js +207 -0
  57. package/dist/update.js.map +1 -0
  58. package/package.json +94 -0
  59. package/template/.commitlintrc.json +3 -0
  60. package/template/.devcontainer/.zshrc +159 -0
  61. package/template/.devcontainer/DISCOVER-DEPS.md +109 -0
  62. package/template/.devcontainer/README.md +223 -0
  63. package/template/.devcontainer/SETUP.md +191 -0
  64. package/template/.devcontainer/TOOLS.md +215 -0
  65. package/template/.devcontainer/devcontainer.json +106 -0
  66. package/template/.devcontainer/scripts/init-project.sh +167 -0
  67. package/template/.editorconfig +12 -0
  68. package/template/.github/.release-please-manifest.json +3 -0
  69. package/template/.github/ISSUE_TEMPLATE/bug_report.md +21 -0
  70. package/template/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
  71. package/template/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  72. package/template/.github/actions/setup-node-env/action.yml +20 -0
  73. package/template/.github/dependabot.yml +17 -0
  74. package/template/.github/labeler.yml +17 -0
  75. package/template/.github/release-please-config.json +7 -0
  76. package/template/.github/workflows/ci.yml +95 -0
  77. package/template/.github/workflows/codeql.yml +31 -0
  78. package/template/.github/workflows/labeler.yml +18 -0
  79. package/template/.github/workflows/release-please.yml +72 -0
  80. package/template/.github/workflows/stale.yml +32 -0
  81. package/template/.husky/commit-msg +1 -0
  82. package/template/.husky/pre-commit +1 -0
  83. package/template/.nvmrc +1 -0
  84. package/template/.vscode/extensions.json +11 -0
  85. package/template/.vscode/settings.json +12 -0
  86. package/template/AGENTS.md +1 -0
  87. package/template/CHANGELOG.md +11 -0
  88. package/template/CLAUDE.md +0 -0
  89. package/template/CONTRIBUTING.md +22 -0
  90. package/template/Dockerfile +21 -0
  91. package/template/LICENSE.Apache-2.0 +17 -0
  92. package/template/LICENSE.BSD-3-Clause +28 -0
  93. package/template/LICENSE.GPL-3.0 +17 -0
  94. package/template/LICENSE.ISC +15 -0
  95. package/template/LICENSE.MIT +21 -0
  96. package/template/README.md +62 -0
  97. package/template/biome.json +49 -0
  98. package/template/docker-compose.yml +7 -0
  99. package/template/docs/architecture/api-layer.md +44 -0
  100. package/template/docs/architecture/constitution.md +24 -0
  101. package/template/docs/architecture/data-model.md +24 -0
  102. package/template/docs/architecture/index.md +15 -0
  103. package/template/docs/architecture/project.md +24 -0
  104. package/template/docs/architecture/quality-checks.md +28 -0
  105. package/template/docs/architecture/testing-plan.md +35 -0
  106. package/template/docs/architecture/ui.md +37 -0
  107. package/template/docs/changelog.md +9 -0
  108. package/template/docs/contributing.md +46 -0
  109. package/template/docs/developer-guide/architecture.md +22 -0
  110. package/template/docs/developer-guide/contributing.md +30 -0
  111. package/template/docs/developer-guide/data-model.md +25 -0
  112. package/template/docs/developer-guide/index.md +12 -0
  113. package/template/docs/developer-guide/testing.md +40 -0
  114. package/template/docs/examples.md +37 -0
  115. package/template/docs/getting-started.md +42 -0
  116. package/template/docs/installation.md +45 -0
  117. package/template/docs/intro.md +60 -0
  118. package/template/docs/post-mortems/.gitkeep +0 -0
  119. package/template/docs/reference/cli.md +32 -0
  120. package/template/docs/reference/configuration.md +33 -0
  121. package/template/docs/reference/hooks.md +27 -0
  122. package/template/docs/research/competitor-analysis.md +21 -0
  123. package/template/docs/research/real-world-demand.md +21 -0
  124. package/template/docs/user-guide/configuration.md +32 -0
  125. package/template/docs/user-guide/features.md +21 -0
  126. package/template/docs/user-guide/how-it-works.md +29 -0
  127. package/template/docs/user-guide/index.md +11 -0
  128. package/template/docusaurus.config.ts +93 -0
  129. package/template/eslint.config.mjs +66 -0
  130. package/template/justfile +51 -0
  131. package/template/package.json +88 -0
  132. package/template/pnpm-workspace.yaml +8 -0
  133. package/template/sidebars.ts +72 -0
  134. package/template/src/index.ts +3 -0
  135. package/template/static/img/logo.svg +4 -0
  136. package/template/tests/index.test.ts +8 -0
  137. package/template/tsconfig.json +23 -0
  138. package/template/vitest.config.ts +19 -0
@@ -0,0 +1,12 @@
1
+ {
2
+ "editor.defaultFormatter": "biomejs.biome",
3
+ "editor.formatOnSave": true,
4
+ "editor.codeActionsOnSave": {
5
+ "source.fixAll.biome": "explicit",
6
+ "source.organizeImports.biome": "explicit",
7
+ "source.fixAll.eslint": "explicit"
8
+ },
9
+ "[typescript]": { "editor.defaultFormatter": "biomejs.biome" },
10
+ "[javascript]": { "editor.defaultFormatter": "biomejs.biome" },
11
+ "[json]": { "editor.defaultFormatter": "biomejs.biome" }
12
+ }
@@ -0,0 +1 @@
1
+ @CLAUDE.md
@@ -0,0 +1,11 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - Initial release
File without changes
@@ -0,0 +1,22 @@
1
+ # Contributing
2
+
3
+ ## Development Setup
4
+
5
+ ```bash
6
+ git clone https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__
7
+ cd __PROJECT_NAME__
8
+ pnpm install
9
+ ```
10
+
11
+ ## Workflow
12
+
13
+ 1. Create a feature branch: `git checkout -b feat/my-feature`
14
+ 2. Make your changes
15
+ 3. Run checks: `pnpm check`
16
+ 4. Run tests: `pnpm test`
17
+ 5. Commit: `git commit -m "feat: my feature"`
18
+ 6. Open a pull request
19
+
20
+ ## Code Style
21
+
22
+ This project uses Biome for formatting and ESLint for linting. Run `pnpm lint:fix` to auto-fix issues.
@@ -0,0 +1,21 @@
1
+ FROM node:__NODE_VERSION__-alpine AS base
2
+ RUN corepack enable pnpm
3
+
4
+ FROM base AS deps
5
+ WORKDIR /app
6
+ COPY package.json pnpm-lock.yaml ./
7
+ RUN pnpm install --frozen-lockfile --prod
8
+
9
+ FROM base AS builder
10
+ WORKDIR /app
11
+ COPY package.json pnpm-lock.yaml ./
12
+ RUN pnpm install --frozen-lockfile
13
+ COPY . .
14
+ RUN pnpm build
15
+
16
+ FROM node:__NODE_VERSION__-alpine AS runner
17
+ WORKDIR /app
18
+ COPY --from=builder /app/dist ./dist
19
+ COPY --from=deps /app/node_modules ./node_modules
20
+ COPY package.json ./
21
+ CMD ["node", "dist/index.js"]
@@ -0,0 +1,17 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ Copyright __YEAR__ __AUTHOR__
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) __YEAR__, __AUTHOR__
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its contributors
16
+ may be used to endorse or promote products derived from this software
17
+ without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,17 @@
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) __YEAR__ __AUTHOR__
5
+
6
+ This program is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU General Public License as published by
8
+ the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU General Public License for more details.
15
+
16
+ You should have received a copy of the GNU General Public License
17
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
@@ -0,0 +1,15 @@
1
+ ISC License
2
+
3
+ Copyright (c) __YEAR__ __AUTHOR__
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) __YEAR__ __AUTHOR__
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,62 @@
1
+ # __PROJECT_NAME__
2
+
3
+ > __DESCRIPTION__
4
+
5
+ [![npm version](https://img.shields.io/npm/v/__PROJECT_NAME__?color=blue)](https://npmjs.com/package/__PROJECT_NAME__)
6
+ [![CI](https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__/actions/workflows/ci.yml/badge.svg)](https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__/actions/workflows/ci.yml)
7
+ [![Coverage](https://codecov.io/gh/__GITHUB_HANDLE__/__PROJECT_NAME__/graph/badge.svg)](https://codecov.io/gh/__GITHUB_HANDLE__/__PROJECT_NAME__)
8
+ [![Docs](https://img.shields.io/badge/docs-online-informational)](https://__GITHUB_HANDLE__.github.io/__PROJECT_NAME__)
9
+ [![License: __LICENSE__](https://img.shields.io/badge/License-__LICENSE__-yellow.svg)](LICENSE)
10
+ [![Node](https://img.shields.io/node/v/__PROJECT_NAME__)](https://nodejs.org)
11
+
12
+ ## What is __PROJECT_NAME__?
13
+
14
+ Replace this paragraph with a 2–3 sentence description. What does it do? Who is it for?
15
+ Why should someone choose it over alternatives?
16
+
17
+ ## Features
18
+
19
+ | | Feature | Description |
20
+ |---|---------|-------------|
21
+ | ⚡ | **Fast** | Replace with a real performance claim |
22
+ | 🔒 | **Type-safe** | Full TypeScript with strict types |
23
+ | 🧪 | **Well tested** | Comprehensive test suite with coverage |
24
+ | 📦 | **Lightweight** | Minimal dependencies |
25
+
26
+ ## Installation
27
+
28
+ ```bash
29
+ # pnpm
30
+ pnpm add __PROJECT_NAME__
31
+
32
+ # npm
33
+ npm install __PROJECT_NAME__
34
+
35
+ # bun
36
+ bun add __PROJECT_NAME__
37
+ ```
38
+
39
+ ## Quick Start
40
+
41
+ ```typescript
42
+ import { yourExport } from '__PROJECT_NAME__';
43
+
44
+ // Replace with the simplest possible working example
45
+ const result = yourExport({ input: 'value' });
46
+ ```
47
+
48
+ ## Documentation
49
+
50
+ Full documentation at **[__GITHUB_HANDLE__.github.io/__PROJECT_NAME__](https://__GITHUB_HANDLE__.github.io/__PROJECT_NAME__)**
51
+
52
+ - [Getting Started](https://__GITHUB_HANDLE__.github.io/__PROJECT_NAME__/getting-started)
53
+ - [User Guide](https://__GITHUB_HANDLE__.github.io/__PROJECT_NAME__/user-guide/)
54
+ - [API Reference](https://__GITHUB_HANDLE__.github.io/__PROJECT_NAME__/api)
55
+
56
+ ## Contributing
57
+
58
+ See [CONTRIBUTING](https://__GITHUB_HANDLE__.github.io/__PROJECT_NAME__/contributing) for development setup and PR guidelines.
59
+
60
+ ## License
61
+
62
+ [__LICENSE__](LICENSE) © __YEAR__ [__AUTHOR__](https://github.com/__GITHUB_HANDLE__)
@@ -0,0 +1,49 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
+ "organizeImports": { "enabled": true },
4
+ "formatter": {
5
+ "enabled": true,
6
+ "indentStyle": "space",
7
+ "indentWidth": 2,
8
+ "lineEnding": "lf",
9
+ "lineWidth": 100
10
+ },
11
+ "javascript": {
12
+ "formatter": {
13
+ "quoteStyle": "single",
14
+ "trailingCommas": "all",
15
+ "semicolons": "always",
16
+ "arrowParentheses": "always"
17
+ }
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "correctness": {
24
+ "noUnusedVariables": "error",
25
+ "noUnusedImports": "error",
26
+ "useExhaustiveDependencies": "off"
27
+ },
28
+ "style": {
29
+ "useConst": "error",
30
+ "noNonNullAssertion": "warn",
31
+ "useTemplate": "error",
32
+ "useNamingConvention": {
33
+ "level": "error",
34
+ "options": { "strictCase": false }
35
+ }
36
+ },
37
+ "suspicious": {
38
+ "noExplicitAny": "error",
39
+ "noConsole": "warn"
40
+ },
41
+ "complexity": {
42
+ "noExcessiveCognitiveComplexity": "warn"
43
+ }
44
+ }
45
+ },
46
+ "files": {
47
+ "ignore": ["node_modules", "dist", "coverage", "*.generated.ts"]
48
+ }
49
+ }
@@ -0,0 +1,7 @@
1
+ services:
2
+ app:
3
+ build: .
4
+ ports:
5
+ - "3000:3000"
6
+ environment:
7
+ - NODE_ENV=production
@@ -0,0 +1,44 @@
1
+ ---
2
+ title: API Layer
3
+ ---
4
+
5
+ # API Layer
6
+
7
+ ## Overview
8
+
9
+ Describe the API layer of __PROJECT_NAME__ — how it exposes functionality to consumers.
10
+
11
+ ## Public API Surface
12
+
13
+ Everything exported from `src/index.ts` is part of the public API and subject to semver.
14
+
15
+ ```typescript
16
+ // Example: primary exports
17
+ export { yourMainExport } from './core.js';
18
+ export type { Config, Result } from './types.js';
19
+ ```
20
+
21
+ ## API Design Principles
22
+
23
+ - **Minimal surface** — only expose what consumers need; keep internals private
24
+ - **Type-safe** — every parameter and return type is fully typed; no `any`
25
+ - **Stable** — breaking changes require a major version bump
26
+
27
+ ## Request / Response Flow
28
+
29
+ Describe how a call flows from consumer → public API → internal implementation → return value.
30
+
31
+ ```
32
+ Consumer → yourMainExport(input)
33
+ → validate(input)
34
+ → process(validated)
35
+ → Result
36
+ ```
37
+
38
+ ## Error Handling
39
+
40
+ Describe how errors surface to callers (thrown exceptions, returned error objects, Result types, etc.).
41
+
42
+ ## Versioning
43
+
44
+ Describe your semver strategy and how you signal deprecations before breaking changes.
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: Constitution
3
+ ---
4
+
5
+ # Constitution
6
+
7
+ The non-negotiable architectural principles for __PROJECT_NAME__.
8
+
9
+ ## Core Principles
10
+
11
+ 1. **TypeScript-first** — every public API is fully typed; no `any` in source code
12
+ 2. **Zero runtime dependencies** — replace or remove if your project has deps
13
+ 3. **Immutability** — replace with your principle
14
+ 4. **Replace with your principle** — describe it
15
+
16
+ ## Constraints
17
+
18
+ - Node.js `>= __NODE_VERSION__` — minimum runtime requirement
19
+ - ESM-only — no CommonJS output
20
+ - Add other constraints relevant to your project
21
+
22
+ ## What This Is Not
23
+
24
+ Describe what __PROJECT_NAME__ explicitly does NOT do. Scope boundaries matter.
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: Data Model
3
+ ---
4
+
5
+ # Data Model
6
+
7
+ ## Type Hierarchy
8
+
9
+ Replace with your project's type hierarchy diagram or description.
10
+
11
+ ```
12
+ RootType
13
+ ├── SubTypeA
14
+ │ └── LeafType
15
+ └── SubTypeB
16
+ ```
17
+
18
+ ## Source of Truth
19
+
20
+ The canonical types are defined in `src/types.ts`. Replace with your actual types file.
21
+
22
+ ## Versioning
23
+
24
+ Describe how breaking changes to types are handled.
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: Architecture
3
+ ---
4
+
5
+ # Architecture
6
+
7
+ This section documents the architectural decisions, constraints, and structure of __PROJECT_NAME__.
8
+
9
+ - [Constitution](./constitution) — principles and non-negotiable constraints
10
+ - [Data Model](./data-model) — schema and type hierarchy
11
+ - [Project Structure](./project) — file and module layout
12
+ - [API Layer](./api-layer) — public API surface, request/response flow, versioning
13
+ - [UI](./ui) — component structure, state management, styling
14
+ - [Quality Checks](./quality-checks) — linting, typing, testing gates
15
+ - [Testing Plan](./testing-plan) — test strategy and coverage goals
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: Project Structure
3
+ ---
4
+
5
+ # Project Structure
6
+
7
+ ```
8
+ __PROJECT_NAME__/
9
+ ├── src/
10
+ │ ├── index.ts # public API exports
11
+ │ └── ... # replace with your structure
12
+ ├── docs/ # documentation source
13
+ ├── dist/ # build output (gitignored)
14
+ └── package.json
15
+ ```
16
+
17
+ ## Module Boundaries
18
+
19
+ Describe the internal module structure and how modules relate.
20
+
21
+ ## Public API
22
+
23
+ Everything exported from `src/index.ts` is part of the public API and subject to semver.
24
+ Everything else is internal and may change without notice.
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Quality Checks
3
+ ---
4
+
5
+ # Quality Checks
6
+
7
+ ## On Every Commit (pre-commit hook)
8
+
9
+ - Biome format + lint
10
+ - ESLint strict mode
11
+
12
+ ## On Every Push / PR (CI)
13
+
14
+ - `pnpm typecheck` — TypeScript strict mode, zero errors allowed
15
+ - `pnpm lint` — Biome CI + ESLint with `--max-warnings=0`
16
+ - `pnpm test:coverage` — Vitest with v8 coverage
17
+ - `pnpm depcheck` — no unused dependencies
18
+ - `pnpm docs:build` — Docusaurus + TypeDoc build (docs branch only)
19
+ - Dependency Review — blocks PRs with known-vulnerable dependencies (CVE severity: moderate+)
20
+
21
+ ## Gates
22
+
23
+ | Gate | Threshold |
24
+ |------|-----------|
25
+ | Test coverage | Replace with your target (e.g., 80%) |
26
+ | TypeScript errors | 0 |
27
+ | ESLint warnings | 0 |
28
+ | Dependency vulnerabilities | 0 moderate+ |
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: Testing Plan
3
+ ---
4
+
5
+ # Testing Plan
6
+
7
+ ## Test Strategy
8
+
9
+ Replace with your project's testing strategy. For a library:
10
+ - **Unit tests** — every exported function, edge cases, error paths
11
+ - **Integration tests** — key workflows end-to-end
12
+ - No mocking of internal implementation details
13
+
14
+ ## Coverage Goals
15
+
16
+ | Metric | Target |
17
+ |--------|--------|
18
+ | Line coverage | > 80% (replace with your target) |
19
+ | Branch coverage | > 75% |
20
+ | Function coverage | > 90% |
21
+
22
+ ## Test File Conventions
23
+
24
+ ```
25
+ src/
26
+ ├── myModule.ts
27
+ └── __tests__/
28
+ └── myModule.test.ts # co-located with source
29
+ ```
30
+
31
+ ## What We Do Not Test
32
+
33
+ - Third-party library internals
34
+ - Build tooling (TypeScript, Biome)
35
+ - Generated files
@@ -0,0 +1,37 @@
1
+ ---
2
+ title: UI
3
+ ---
4
+
5
+ # UI
6
+
7
+ Remove this section if __PROJECT_NAME__ has no user interface.
8
+
9
+ ## Overview
10
+
11
+ Describe the UI layer — component structure, rendering approach, and how it connects to the core library.
12
+
13
+ ## Component Structure
14
+
15
+ ```
16
+ src/
17
+ └── ui/
18
+ ├── components/ # reusable primitives
19
+ ├── views/ # page-level compositions
20
+ └── index.ts # public UI exports
21
+ ```
22
+
23
+ ## State Management
24
+
25
+ Describe how UI state is managed (local component state, context, external store, etc.) and how it stays in sync with library state.
26
+
27
+ ## Theming & Styling
28
+
29
+ Describe the styling approach (CSS Modules, Tailwind, CSS-in-JS, etc.) and how consumers can customize the appearance.
30
+
31
+ ## Accessibility
32
+
33
+ Describe your accessibility baseline (WCAG level, ARIA patterns, keyboard navigation support).
34
+
35
+ ## Design Decisions
36
+
37
+ Document any non-obvious UI architecture choices — e.g., why a headless component pattern was chosen, or why rendering is decoupled from logic.
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: Changelog
3
+ ---
4
+
5
+ # Changelog
6
+
7
+ All notable changes are tracked in [CHANGELOG.md](https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__/blob/main/CHANGELOG.md) on GitHub.
8
+
9
+ Releases are automated via [release-please](https://github.com/googleapis/release-please).
@@ -0,0 +1,46 @@
1
+ ---
2
+ title: Contributing
3
+ ---
4
+
5
+ # Contributing
6
+
7
+ Thank you for your interest in contributing to __PROJECT_NAME__!
8
+
9
+ ## Development Setup
10
+
11
+ ```bash
12
+ git clone https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__.git
13
+ cd __PROJECT_NAME__
14
+ pnpm install
15
+ ```
16
+
17
+ ## Running Tests
18
+
19
+ ```bash
20
+ pnpm test # run tests
21
+ pnpm test:coverage # run with coverage
22
+ ```
23
+
24
+ ## Code Quality
25
+
26
+ ```bash
27
+ pnpm check # typecheck + lint
28
+ pnpm lint:fix # auto-fix linting issues
29
+ ```
30
+
31
+ ## Submitting a Pull Request
32
+
33
+ 1. Fork the repository
34
+ 2. Create a feature branch: `git checkout -b feat/your-feature`
35
+ 3. Make your changes and add tests
36
+ 4. Ensure all checks pass: `pnpm check && pnpm test`
37
+ 5. Commit using [Conventional Commits](https://www.conventionalcommits.org/):
38
+ - `feat: add new feature`
39
+ - `fix: correct a bug`
40
+ - `docs: update documentation`
41
+ 6. Open a pull request
42
+
43
+ ## Release Process
44
+
45
+ Releases are automated via [release-please](https://github.com/googleapis/release-please).
46
+ Merging a release PR automatically publishes to npm and deploys the docs.
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Architecture Overview
3
+ ---
4
+
5
+ # Architecture Overview
6
+
7
+ See the [Architecture section](../architecture/) for detailed documentation.
8
+
9
+ ## Quick Summary
10
+
11
+ Describe your architecture in 2-3 sentences for developers scanning this guide.
12
+
13
+ ## Key Files
14
+
15
+ | File | Responsibility |
16
+ |------|----------------|
17
+ | `src/index.ts` | Public API exports |
18
+ | `src/core.ts` | Replace with your core module |
19
+
20
+ ## Extension Points
21
+
22
+ Describe how the library can be extended or customized.
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: Contributing (Dev)
3
+ ---
4
+
5
+ # Contributing — Developer Notes
6
+
7
+ This covers technical details for contributors. See the [user-facing contributing guide](../contributing) for the PR workflow.
8
+
9
+ ## Project Setup
10
+
11
+ ```bash
12
+ git clone https://github.com/__GITHUB_HANDLE__/__PROJECT_NAME__.git
13
+ cd __PROJECT_NAME__
14
+ pnpm install
15
+ pnpm build
16
+ pnpm test
17
+ ```
18
+
19
+ ## Code Conventions
20
+
21
+ - TypeScript strict mode — no `any`, no `@ts-ignore`
22
+ - Biome for formatting — `pnpm lint:fix` before committing
23
+ - Conventional commits — required for release-please automation
24
+
25
+ ## Release Process
26
+
27
+ Releases are fully automated:
28
+ 1. Commit with conventional commit messages
29
+ 2. release-please opens a versioned PR automatically
30
+ 3. Merge the PR → release created → npm published → docs deployed