@activatus/code-standards 0.0.0-stage → 3.0.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.
- package/README.md +199 -2
- package/docs/Guides/_category_.json +4 -0
- package/docs/Guides/component-library-workflow.md +182 -0
- package/docs/Guides/migrating.md +161 -0
- package/docs/Guides/setup.md +158 -0
- package/docs/Standards/_category_.json +4 -0
- package/docs/Standards/agent-skills.md +125 -0
- package/docs/Standards/agent-specs.md +74 -0
- package/docs/Standards/direnv.mdx +249 -0
- package/docs/Standards/documentation.md +314 -0
- package/docs/Standards/editorconfig.md +74 -0
- package/docs/Standards/eslint.md +900 -0
- package/docs/Standards/human-readable-names.md +274 -0
- package/docs/Standards/lint-errors.md +171 -0
- package/docs/Standards/prettier.md +106 -0
- package/docs/Standards/readable-code.md +570 -0
- package/docs/Standards/stylelint.md +193 -0
- package/docs/Standards/styling.md +290 -0
- package/docs/Standards/tech-stack.md +158 -0
- package/docs/Structure/_category_.json +4 -0
- package/docs/Structure/api-routes.md +118 -0
- package/docs/Structure/component-organization.md +526 -0
- package/docs/Structure/folder-structure.md +366 -0
- package/docs/Structure/import-organization.md +158 -0
- package/docs/Structure/naming-conventions.md +334 -0
- package/docs/design-system-components.md +117 -0
- package/docs/intro.md +44 -0
- package/docs/ontology.md +127 -0
- package/docs/templates.mdx +396 -0
- package/docs/version-history.md +338 -0
- package/package.json +60 -3
- package/scripts/renameSymbol.mjs +188 -0
- package/static/templates/.editorconfig +25 -0
- package/static/templates/.envrc +25 -0
- package/static/templates/.nvmrc +1 -0
- package/static/templates/AGENTS.md +163 -0
- package/static/templates/decision-doc.md +19 -0
- package/static/templates/docs/ai/agent-harness.md +17 -0
- package/static/templates/docs/ai/agents.md +17 -0
- package/static/templates/docs/ai/architecture.md +17 -0
- package/static/templates/docs/ai/context.md +17 -0
- package/static/templates/docs/ai/model-routing.md +17 -0
- package/static/templates/docs/ai/models.md +17 -0
- package/static/templates/docs/ai/retrieval.md +17 -0
- package/static/templates/docs/ai/tools.md +17 -0
- package/static/templates/docs/architecture/authentication.md +17 -0
- package/static/templates/docs/architecture/backend.md +17 -0
- package/static/templates/docs/architecture/background-jobs.md +17 -0
- package/static/templates/docs/architecture/backups.md +17 -0
- package/static/templates/docs/architecture/caching.md +17 -0
- package/static/templates/docs/architecture/ci-cd.md +17 -0
- package/static/templates/docs/architecture/disaster-recovery.md +17 -0
- package/static/templates/docs/architecture/environments.md +17 -0
- package/static/templates/docs/architecture/frontend.md +17 -0
- package/static/templates/docs/architecture/hosting.md +17 -0
- package/static/templates/docs/architecture/observability.md +17 -0
- package/static/templates/docs/architecture/realtime.md +17 -0
- package/static/templates/docs/architecture/search.md +17 -0
- package/static/templates/docs/architecture/services.md +17 -0
- package/static/templates/docs/architecture/state-management.md +17 -0
- package/static/templates/docs/architecture/storage.md +17 -0
- package/static/templates/docs/architecture/system.md +17 -0
- package/static/templates/docs/business/buying-trigger.md +17 -0
- package/static/templates/docs/business/customer-value.md +17 -0
- package/static/templates/docs/business/customer.md +17 -0
- package/static/templates/docs/business/defensibility.md +17 -0
- package/static/templates/docs/business/growth.md +17 -0
- package/static/templates/docs/business/pricing.md +17 -0
- package/static/templates/docs/business/revenue-model.md +17 -0
- package/static/templates/docs/business/unit-economics.md +17 -0
- package/static/templates/docs/data/analytics.md +17 -0
- package/static/templates/docs/data/audit.md +17 -0
- package/static/templates/docs/data/database.md +17 -0
- package/static/templates/docs/data/indexing.md +17 -0
- package/static/templates/docs/data/migrations.md +17 -0
- package/static/templates/docs/data/model.md +17 -0
- package/static/templates/docs/data/retention.md +17 -0
- package/static/templates/docs/data/schema.md +17 -0
- package/static/templates/docs/deployment/approval.md +17 -0
- package/static/templates/docs/deployment/live-verification.md +17 -0
- package/static/templates/docs/deployment/process.md +17 -0
- package/static/templates/docs/deployment/rollback.md +17 -0
- package/static/templates/docs/design/design-system.md +17 -0
- package/static/templates/docs/design/errors.md +17 -0
- package/static/templates/docs/design/feedback.md +17 -0
- package/static/templates/docs/design/interactions.md +17 -0
- package/static/templates/docs/design/layout.md +17 -0
- package/static/templates/docs/design/navigation.md +17 -0
- package/static/templates/docs/design/principles.md +17 -0
- package/static/templates/docs/design/responsive.md +17 -0
- package/static/templates/docs/development/branching.md +17 -0
- package/static/templates/docs/development/code-quality.md +17 -0
- package/static/templates/docs/development/coding-standards.md +21 -0
- package/static/templates/docs/development/commits.md +17 -0
- package/static/templates/docs/development/merge-strategy.md +17 -0
- package/static/templates/docs/development/process.md +17 -0
- package/static/templates/docs/development/pull-requests.md +17 -0
- package/static/templates/docs/experience/accessibility.md +17 -0
- package/static/templates/docs/experience/aha-moment.md +17 -0
- package/static/templates/docs/experience/anti-experience.md +17 -0
- package/static/templates/docs/experience/friction.md +17 -0
- package/static/templates/docs/experience/outcomes.md +17 -0
- package/static/templates/docs/experience/principles.md +17 -0
- package/static/templates/docs/experience/retention.md +17 -0
- package/static/templates/docs/experience/sharing.md +17 -0
- package/static/templates/docs/overview/how-it-works.md +17 -0
- package/static/templates/docs/overview/what-is-it.md +17 -0
- package/static/templates/docs/overview/writing-docs.md +16 -0
- package/static/templates/docs/pitch/alternatives.md +17 -0
- package/static/templates/docs/pitch/assumptions.md +17 -0
- package/static/templates/docs/pitch/audience.md +17 -0
- package/static/templates/docs/pitch/concept.md +17 -0
- package/static/templates/docs/pitch/differentiators.md +17 -0
- package/static/templates/docs/pitch/outcomes.md +17 -0
- package/static/templates/docs/pitch/problem.md +17 -0
- package/static/templates/docs/pitch/product-market-fit.md +17 -0
- package/static/templates/docs/pitch/success-criteria.md +17 -0
- package/static/templates/docs/pitch/validation.md +17 -0
- package/static/templates/docs/pitch/value-proposition.md +17 -0
- package/static/templates/docs/pitch/vision.md +17 -0
- package/static/templates/docs/scope/core.md +17 -0
- package/static/templates/docs/scope/exclusions.md +17 -0
- package/static/templates/docs/scope/future.md +17 -0
- package/static/templates/docs/scope/launch.md +17 -0
- package/static/templates/docs/scope/post-launch.md +17 -0
- package/static/templates/docs/scope/priorities.md +17 -0
- package/static/templates/docs/scope/quality-bar.md +17 -0
- package/static/templates/docs/security/audit.md +17 -0
- package/static/templates/docs/security/data-access.md +17 -0
- package/static/templates/docs/security/logging.md +17 -0
- package/static/templates/docs/security/privacy.md +17 -0
- package/static/templates/docs/security/secrets.md +17 -0
- package/static/templates/docs/security/threat-model.md +17 -0
- package/static/templates/docs/testing/end-to-end.md +17 -0
- package/static/templates/docs/testing/integration.md +17 -0
- package/static/templates/docs/testing/regression.md +17 -0
- package/static/templates/docs/testing/security.md +17 -0
- package/static/templates/docs/testing/strategy.md +17 -0
- package/static/templates/docs/testing/test-data.md +17 -0
- package/static/templates/docs/testing/unit.md +17 -0
- package/static/templates/docs/uat/checks.md +17 -0
- package/static/templates/docs/uat/strategy.md +17 -0
- package/static/templates/docs/users/permissions.md +17 -0
- package/static/templates/docs/users/roles.md +17 -0
- package/static/templates/docs/users/user-types.md +17 -0
- package/static/templates/docs/workflows/assignment.md +17 -0
- package/static/templates/docs/workflows/bugfix.md +17 -0
- package/static/templates/docs/workflows/dependencies.md +17 -0
- package/static/templates/docs/workflows/deployment.md +17 -0
- package/static/templates/docs/workflows/development.md +17 -0
- package/static/templates/docs/workflows/planning.md +17 -0
- package/static/templates/docs/workflows/review.md +17 -0
- package/static/templates/docs/workflows/uat.md +17 -0
- package/static/templates/docsSite/docusaurus.config.mjs +144 -0
- package/static/templates/docsSite/gitignore.txt +3 -0
- package/static/templates/docsSite/package.json.txt +42 -0
- package/static/templates/docsSite/pnpm-workspace.yaml +2 -0
- package/static/templates/docsSite/sidebars.mjs +7 -0
- package/static/templates/docsSite/src/css/custom.css +7 -0
- package/static/templates/docsSite/src/pages/index.tsx +9 -0
- package/static/templates/docsSite/static/images/logo.svg +4 -0
- package/static/templates/docsSite/tsconfig.json +7 -0
- package/static/templates/eslint/base/eslint.config.mjs +104 -0
- package/static/templates/eslint/nextjs/eslint.config.mjs +181 -0
- package/static/templates/eslint/react/eslint.config.mjs +173 -0
- package/static/templates/eslint/typescript/eslint.config.mjs +154 -0
- package/static/templates/globals.css +16 -0
- package/static/templates/husky/pre-commit +1 -0
- package/static/templates/next.config.mjs +21 -0
- package/static/templates/prettier.config.mjs +26 -0
- package/static/templates/skills/codeReview.md +31 -0
- package/static/templates/skills/format.md +18 -0
- package/static/templates/skills/lint.md +21 -0
- package/static/templates/skills/lintFix.md +24 -0
- package/static/templates/skills/securityAudit.md +28 -0
- package/static/templates/skills/test.md +24 -0
- package/static/templates/skills/typescript.md +28 -0
- package/static/templates/skills/updateLayout.md +20 -0
- package/static/templates/stylelint/css/stylelint.config.mjs +40 -0
- package/static/templates/stylelint/scss/stylelint.config.mjs +13 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
import CodeBlock from "@theme/CodeBlock";
|
|
6
|
+
import agents from "!!raw-loader!@site/static/templates/AGENTS.md";
|
|
7
|
+
import eslintTypescript from "!!raw-loader!@site/static/templates/eslint/typescript/eslint.config.mjs";
|
|
8
|
+
import eslintReact from "!!raw-loader!@site/static/templates/eslint/react/eslint.config.mjs";
|
|
9
|
+
import eslintNextjs from "!!raw-loader!@site/static/templates/eslint/nextjs/eslint.config.mjs";
|
|
10
|
+
import eslintBase from "!!raw-loader!@site/static/templates/eslint/base/eslint.config.mjs";
|
|
11
|
+
import prettier from "!!raw-loader!@site/static/templates/prettier.config.mjs";
|
|
12
|
+
import stylelintCss from "!!raw-loader!@site/static/templates/stylelint/css/stylelint.config.mjs";
|
|
13
|
+
import stylelintScss from "!!raw-loader!@site/static/templates/stylelint/scss/stylelint.config.mjs";
|
|
14
|
+
import globalsCss from "!!raw-loader!@site/static/templates/globals.css";
|
|
15
|
+
import editorconfig from "!!raw-loader!@site/static/templates/.editorconfig";
|
|
16
|
+
import nvmrc from "!!raw-loader!@site/static/templates/.nvmrc";
|
|
17
|
+
import envrc from "!!raw-loader!@site/static/templates/.envrc";
|
|
18
|
+
import skillLint from "!!raw-loader!@site/static/templates/skills/lint.md";
|
|
19
|
+
import skillLintFix from "!!raw-loader!@site/static/templates/skills/lintFix.md";
|
|
20
|
+
import skillFormat from "!!raw-loader!@site/static/templates/skills/format.md";
|
|
21
|
+
import skillCodeReview from "!!raw-loader!@site/static/templates/skills/codeReview.md";
|
|
22
|
+
import skillUpdateLayout from "!!raw-loader!@site/static/templates/skills/updateLayout.md";
|
|
23
|
+
import skillSecurityAudit from "!!raw-loader!@site/static/templates/skills/securityAudit.md";
|
|
24
|
+
import skillTypescript from "!!raw-loader!@site/static/templates/skills/typescript.md";
|
|
25
|
+
import skillTest from "!!raw-loader!@site/static/templates/skills/test.md";
|
|
26
|
+
import docsSitePackage from "!!raw-loader!@site/static/templates/docsSite/package.json.txt";
|
|
27
|
+
import docsSiteConfig from "!!raw-loader!@site/static/templates/docsSite/docusaurus.config.mjs";
|
|
28
|
+
import docsSiteSidebars from "!!raw-loader!@site/static/templates/docsSite/sidebars.mjs";
|
|
29
|
+
import docsSiteTsconfig from "!!raw-loader!@site/static/templates/docsSite/tsconfig.json";
|
|
30
|
+
import docsSiteWorkspace from "!!raw-loader!@site/static/templates/docsSite/pnpm-workspace.yaml";
|
|
31
|
+
import docsSiteCss from "!!raw-loader!@site/static/templates/docsSite/src/css/custom.css";
|
|
32
|
+
import docsSiteGitignore from "!!raw-loader!@site/static/templates/docsSite/gitignore.txt";
|
|
33
|
+
import decisionDoc from "!!raw-loader!@site/static/templates/decision-doc.md";
|
|
34
|
+
import docsSiteHome from "!!raw-loader!@site/static/templates/docsSite/src/pages/index.tsx";
|
|
35
|
+
import nextConfig from "!!raw-loader!@site/static/templates/next.config.mjs";
|
|
36
|
+
import huskyPreCommit from "!!raw-loader!@site/static/templates/husky/pre-commit";
|
|
37
|
+
|
|
38
|
+
# Templates
|
|
39
|
+
|
|
40
|
+
Ready-made files to copy into a project. Every config on this page is the exact file described in the standards — copy it, do not retype it.
|
|
41
|
+
|
|
42
|
+
Each file is also served as a plain file, so a person or an AI agent can fetch it directly instead of copying from this page.
|
|
43
|
+
|
|
44
|
+
**Every config file is `.mjs`, even in a TypeScript project.** Never convert one to `.ts` or `.mts`. It works in both, so every project looks the same. A tool that cannot read `.mjs` keeps its own format.
|
|
45
|
+
|
|
46
|
+
| File | Copy to | Plain file |
|
|
47
|
+
| ------------------------------------------------ | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| [AGENTS.md](#agents) | `AGENTS.md` in the project root | [`/templates/AGENTS.md`](pathname:///templates/AGENTS.md) |
|
|
49
|
+
| [ESLint — TypeScript](#eslinttypescript) | `eslint.config.mjs` in the project root | [`/templates/eslint/typescript/eslint.config.mjs`](pathname:///templates/eslint/typescript/eslint.config.mjs) |
|
|
50
|
+
| [ESLint — React + TypeScript](#eslintreact) | `eslint.config.mjs` in the project root | [`/templates/eslint/react/eslint.config.mjs`](pathname:///templates/eslint/react/eslint.config.mjs) |
|
|
51
|
+
| [ESLint — Next.js](#eslintnextjs) | `eslint.config.mjs` in the project root | [`/templates/eslint/nextjs/eslint.config.mjs`](pathname:///templates/eslint/nextjs/eslint.config.mjs) |
|
|
52
|
+
| [ESLint — JavaScript / Node.js](#eslintbase) | `eslint.config.mjs` in the project root | [`/templates/eslint/base/eslint.config.mjs`](pathname:///templates/eslint/base/eslint.config.mjs) |
|
|
53
|
+
| [Prettier](#prettier) | `prettier.config.mjs` in the project root | [`/templates/prettier.config.mjs`](pathname:///templates/prettier.config.mjs) |
|
|
54
|
+
| [Stylelint — CSS and CSS Modules](#stylelintcss) | `stylelint.config.mjs` in the project root | [`/templates/stylelint/css/stylelint.config.mjs`](pathname:///templates/stylelint/css/stylelint.config.mjs) |
|
|
55
|
+
| [Stylelint — SCSS](#stylelintscss) | `stylelint.config.mjs` in the project root | [`/templates/stylelint/scss/stylelint.config.mjs`](pathname:///templates/stylelint/scss/stylelint.config.mjs) |
|
|
56
|
+
| [Global styles and colour palette](#globalscss) | `app/globals.css` | [`/templates/globals.css`](pathname:///templates/globals.css) |
|
|
57
|
+
| [EditorConfig](#editorconfig) | `.editorconfig` in the project root | [`/templates/.editorconfig`](pathname:///templates/.editorconfig) |
|
|
58
|
+
| [Node version](#nvmrc) | `.nvmrc` in the project root | [`/templates/.nvmrc`](pathname:///templates/.nvmrc) |
|
|
59
|
+
| [direnv](#envrc) | `.envrc` in the project root | [`/templates/.envrc`](pathname:///templates/.envrc) |
|
|
60
|
+
| [Agent skills](#skills) | `.agents/skills/` and `.claude/commands/` | Eight files — see [below](#skills) |
|
|
61
|
+
| [Lint before commit](#husky-pre-commit) | `.husky/pre-commit` | [`/templates/husky/pre-commit`](pathname:///templates/husky/pre-commit) |
|
|
62
|
+
| [Docs site](#docs-site) | `docsSite/` in the project root | Several files — see [below](#docs-site) |
|
|
63
|
+
| [`/docs` route](#docs-route) | `next.config.mjs` | [`/templates/next.config.mjs`](pathname:///templates/next.config.mjs) |
|
|
64
|
+
| [Document templates](#document-templates) | `docs/` in the project root | Several files — see [below](#document-templates) |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## AGENTS.md {#agents}
|
|
69
|
+
|
|
70
|
+
**Copy to:** `AGENTS.md` in the project root
|
|
71
|
+
|
|
72
|
+
Replace every `[placeholder]`. See [AGENTS.md Specifications](/Standards/agent-specs).
|
|
73
|
+
|
|
74
|
+
<CodeBlock language="markdown" title="AGENTS.md">
|
|
75
|
+
{agents}
|
|
76
|
+
</CodeBlock>
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## ESLint — TypeScript {#eslinttypescript}
|
|
81
|
+
|
|
82
|
+
**Copy to:** `eslint.config.mjs` in the project root
|
|
83
|
+
|
|
84
|
+
For TypeScript projects. Install commands are on the [ESLint page](/Standards/eslint#installation).
|
|
85
|
+
|
|
86
|
+
<CodeBlock language="js" title="eslint.config.mjs">
|
|
87
|
+
{eslintTypescript}
|
|
88
|
+
</CodeBlock>
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## ESLint — React + TypeScript {#eslintreact}
|
|
93
|
+
|
|
94
|
+
**Copy to:** `eslint.config.mjs` in the project root
|
|
95
|
+
|
|
96
|
+
For React projects. Set `settings.react.version` to the project's React version.
|
|
97
|
+
|
|
98
|
+
<CodeBlock language="js" title="eslint.config.mjs">
|
|
99
|
+
{eslintReact}
|
|
100
|
+
</CodeBlock>
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## ESLint — Next.js {#eslintnextjs}
|
|
105
|
+
|
|
106
|
+
**Copy to:** `eslint.config.mjs` in the project root
|
|
107
|
+
|
|
108
|
+
For Next.js projects. Set `settings.react.version` to the project's React version.
|
|
109
|
+
|
|
110
|
+
<CodeBlock language="js" title="eslint.config.mjs">
|
|
111
|
+
{eslintNextjs}
|
|
112
|
+
</CodeBlock>
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## ESLint — JavaScript / Node.js {#eslintbase}
|
|
117
|
+
|
|
118
|
+
**Copy to:** `eslint.config.mjs` in the project root
|
|
119
|
+
|
|
120
|
+
For plain JavaScript and Node.js projects.
|
|
121
|
+
|
|
122
|
+
<CodeBlock language="js" title="eslint.config.mjs">
|
|
123
|
+
{eslintBase}
|
|
124
|
+
</CodeBlock>
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Prettier {#prettier}
|
|
129
|
+
|
|
130
|
+
**Copy to:** `prettier.config.mjs` in the project root
|
|
131
|
+
|
|
132
|
+
See the [Prettier page](/Standards/prettier).
|
|
133
|
+
|
|
134
|
+
<CodeBlock language="js" title="prettier.config.mjs">
|
|
135
|
+
{prettier}
|
|
136
|
+
</CodeBlock>
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Stylelint — CSS and CSS Modules {#stylelintcss}
|
|
141
|
+
|
|
142
|
+
**Copy to:** `stylelint.config.mjs` in the project root
|
|
143
|
+
|
|
144
|
+
See the [Stylelint page](/Standards/stylelint).
|
|
145
|
+
|
|
146
|
+
<CodeBlock language="js" title="stylelint.config.mjs">
|
|
147
|
+
{stylelintCss}
|
|
148
|
+
</CodeBlock>
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Stylelint — SCSS {#stylelintscss}
|
|
153
|
+
|
|
154
|
+
**Copy to:** `stylelint.config.mjs` in the project root
|
|
155
|
+
|
|
156
|
+
For projects that use SCSS.
|
|
157
|
+
|
|
158
|
+
<CodeBlock language="js" title="stylelint.config.mjs">
|
|
159
|
+
{stylelintScss}
|
|
160
|
+
</CodeBlock>
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Global styles and colour palette {#globalscss}
|
|
165
|
+
|
|
166
|
+
**Copy to:** `app/globals.css`
|
|
167
|
+
|
|
168
|
+
Replace the example colours with the project's palette. See [CSS Styling](/Standards/styling).
|
|
169
|
+
|
|
170
|
+
<CodeBlock language="css" title="globals.css">
|
|
171
|
+
{globalsCss}
|
|
172
|
+
</CodeBlock>
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## EditorConfig {#editorconfig}
|
|
177
|
+
|
|
178
|
+
**Copy to:** `.editorconfig` in the project root
|
|
179
|
+
|
|
180
|
+
See the [EditorConfig page](/Standards/editorconfig).
|
|
181
|
+
|
|
182
|
+
<CodeBlock language="ini" title=".editorconfig">
|
|
183
|
+
{editorconfig}
|
|
184
|
+
</CodeBlock>
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Node version {#nvmrc}
|
|
189
|
+
|
|
190
|
+
**Copy to:** `.nvmrc` in the project root
|
|
191
|
+
|
|
192
|
+
Set it to the project's Node major version. See [direnv + nvm](/Standards/direnv).
|
|
193
|
+
|
|
194
|
+
<CodeBlock language="text" title=".nvmrc">
|
|
195
|
+
{nvmrc}
|
|
196
|
+
</CodeBlock>
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## direnv {#envrc}
|
|
201
|
+
|
|
202
|
+
**Copy to:** `.envrc` in the project root
|
|
203
|
+
|
|
204
|
+
Run `direnv allow` after adding it. See [direnv + nvm](/Standards/direnv).
|
|
205
|
+
|
|
206
|
+
<CodeBlock language="bash" title=".envrc">
|
|
207
|
+
{envrc}
|
|
208
|
+
</CodeBlock>
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Agent skills {#skills}
|
|
213
|
+
|
|
214
|
+
**Copy to:** `.agents/skills/` in the project root, and again to `.claude/commands/` so Claude Code picks them up as slash commands.
|
|
215
|
+
|
|
216
|
+
The eight standard skills. Copy all of them into every project. See [Agent Skills](/Standards/agent-skills) for how they are written.
|
|
217
|
+
|
|
218
|
+
| Skill | Invocation | Plain file |
|
|
219
|
+
| -------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------- |
|
|
220
|
+
| [Lint](#skill-lint) | `/lint [path]` | [`/templates/skills/lint.md`](pathname:///templates/skills/lint.md) |
|
|
221
|
+
| [Lint & fix](#skill-lintfix) | `/lintFix [path]` | [`/templates/skills/lintFix.md`](pathname:///templates/skills/lintFix.md) |
|
|
222
|
+
| [Format](#skill-format) | `/format [path]` | [`/templates/skills/format.md`](pathname:///templates/skills/format.md) |
|
|
223
|
+
| [Code review](#skill-codereview) | `/codeReview [branch, commit or path]` | [`/templates/skills/codeReview.md`](pathname:///templates/skills/codeReview.md) |
|
|
224
|
+
| [Update layout](#skill-updatelayout) | `/updateLayout` | [`/templates/skills/updateLayout.md`](pathname:///templates/skills/updateLayout.md) |
|
|
225
|
+
| [Security audit](#skill-securityaudit) | `/securityAudit [path]` | [`/templates/skills/securityAudit.md`](pathname:///templates/skills/securityAudit.md) |
|
|
226
|
+
| [TypeScript](#skill-typescript) | `/typescript [path]` | [`/templates/skills/typescript.md`](pathname:///templates/skills/typescript.md) |
|
|
227
|
+
| [Test](#skill-test) | `/test [path]` | [`/templates/skills/test.md`](pathname:///templates/skills/test.md) |
|
|
228
|
+
|
|
229
|
+
### Lint {#skill-lint}
|
|
230
|
+
|
|
231
|
+
Runs ESLint (and Stylelint if configured) in check-only mode; reports all issues grouped by file.
|
|
232
|
+
|
|
233
|
+
<CodeBlock language="markdown" title="lint.md">
|
|
234
|
+
{skillLint}
|
|
235
|
+
</CodeBlock>
|
|
236
|
+
|
|
237
|
+
### Lint & fix {#skill-lintfix}
|
|
238
|
+
|
|
239
|
+
Runs ESLint and Stylelint in fix mode, then Prettier; reports what changed and what is left.
|
|
240
|
+
|
|
241
|
+
<CodeBlock language="markdown" title="lintFix.md">
|
|
242
|
+
{skillLintFix}
|
|
243
|
+
</CodeBlock>
|
|
244
|
+
|
|
245
|
+
### Format {#skill-format}
|
|
246
|
+
|
|
247
|
+
Runs Prettier in write mode; reports reformatted files.
|
|
248
|
+
|
|
249
|
+
<CodeBlock language="markdown" title="format.md">
|
|
250
|
+
{skillFormat}
|
|
251
|
+
</CodeBlock>
|
|
252
|
+
|
|
253
|
+
### Code review {#skill-codereview}
|
|
254
|
+
|
|
255
|
+
Reviews changes for correctness, security, types, tests and standards compliance. Report only.
|
|
256
|
+
|
|
257
|
+
<CodeBlock language="markdown" title="codeReview.md">
|
|
258
|
+
{skillCodeReview}
|
|
259
|
+
</CodeBlock>
|
|
260
|
+
|
|
261
|
+
### Update layout {#skill-updatelayout}
|
|
262
|
+
|
|
263
|
+
Regenerates the "Repository layout" section of `AGENTS.md` (and "Workspace packages" in monorepos).
|
|
264
|
+
|
|
265
|
+
<CodeBlock language="markdown" title="updateLayout.md">
|
|
266
|
+
{skillUpdateLayout}
|
|
267
|
+
</CodeBlock>
|
|
268
|
+
|
|
269
|
+
### Security audit {#skill-securityaudit}
|
|
270
|
+
|
|
271
|
+
Audits dependencies and code for secrets, missing access control, unvalidated input and injection. Report only.
|
|
272
|
+
|
|
273
|
+
<CodeBlock language="markdown" title="securityAudit.md">
|
|
274
|
+
{skillSecurityAudit}
|
|
275
|
+
</CodeBlock>
|
|
276
|
+
|
|
277
|
+
### TypeScript {#skill-typescript}
|
|
278
|
+
|
|
279
|
+
Tightens loose types and removes `any`, `!` and unexplained `as`.
|
|
280
|
+
|
|
281
|
+
<CodeBlock language="markdown" title="typescript.md">
|
|
282
|
+
{skillTypescript}
|
|
283
|
+
</CodeBlock>
|
|
284
|
+
|
|
285
|
+
### Test {#skill-test}
|
|
286
|
+
|
|
287
|
+
Runs the test suite; reports failures grouped by cause, tests that never ran, and files missing a test.
|
|
288
|
+
|
|
289
|
+
<CodeBlock language="markdown" title="test.md">
|
|
290
|
+
{skillTest}
|
|
291
|
+
</CodeBlock>
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Lint before commit {#husky-pre-commit}
|
|
296
|
+
|
|
297
|
+
**Copy to:** `.husky/pre-commit` in the project root
|
|
298
|
+
|
|
299
|
+
Refuses a commit while `pnpm lint` reports errors. See [Lint before every commit](/Standards/lint-errors#lint-before-every-commit). Plain file: [`/templates/husky/pre-commit`](pathname:///templates/husky/pre-commit)
|
|
300
|
+
|
|
301
|
+
<CodeBlock language="text" title=".husky/pre-commit">
|
|
302
|
+
{huskyPreCommit}
|
|
303
|
+
</CodeBlock>
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Docs site {#docs-site}
|
|
308
|
+
|
|
309
|
+
**Copy to:** a `docsSite/` folder in the project root
|
|
310
|
+
|
|
311
|
+
The Docusaurus viewer that shows the project's `docs/` folder at `/docs`. Copy every file, keeping the folder layout. See [Documentation](/Standards/documentation#-setting-it-up).
|
|
312
|
+
|
|
313
|
+
| File | Plain file |
|
|
314
|
+
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
315
|
+
| `package.json` | [`/templates/docsSite/package.json.txt`](pathname:///templates/docsSite/package.json.txt) — rename to `package.json` |
|
|
316
|
+
| `docusaurus.config.mjs` | [`/templates/docsSite/docusaurus.config.mjs`](pathname:///templates/docsSite/docusaurus.config.mjs) |
|
|
317
|
+
| `sidebars.mjs` | [`/templates/docsSite/sidebars.mjs`](pathname:///templates/docsSite/sidebars.mjs) |
|
|
318
|
+
| `tsconfig.json` | [`/templates/docsSite/tsconfig.json`](pathname:///templates/docsSite/tsconfig.json) |
|
|
319
|
+
| `pnpm-workspace.yaml` | [`/templates/docsSite/pnpm-workspace.yaml`](pathname:///templates/docsSite/pnpm-workspace.yaml) |
|
|
320
|
+
| `src/css/custom.css` | [`/templates/docsSite/src/css/custom.css`](pathname:///templates/docsSite/src/css/custom.css) |
|
|
321
|
+
| `.gitignore` | [`/templates/docsSite/gitignore.txt`](pathname:///templates/docsSite/gitignore.txt) — rename to `.gitignore` |
|
|
322
|
+
| `src/pages/index.tsx` | [`/templates/docsSite/src/pages/index.tsx`](pathname:///templates/docsSite/src/pages/index.tsx) |
|
|
323
|
+
| `static/images/logo.svg` | [`/templates/docsSite/static/images/logo.svg`](pathname:///templates/docsSite/static/images/logo.svg) — replace with the project logo |
|
|
324
|
+
|
|
325
|
+
Set `PROJECT_NAME` at the top of the config:
|
|
326
|
+
|
|
327
|
+
<CodeBlock language="js" title="docusaurus.config.mjs">
|
|
328
|
+
{docsSiteConfig}
|
|
329
|
+
</CodeBlock>
|
|
330
|
+
|
|
331
|
+
<CodeBlock language="json" title="package.json">
|
|
332
|
+
{docsSitePackage}
|
|
333
|
+
</CodeBlock>
|
|
334
|
+
|
|
335
|
+
<CodeBlock language="js" title="sidebars.mjs">
|
|
336
|
+
{docsSiteSidebars}
|
|
337
|
+
</CodeBlock>
|
|
338
|
+
|
|
339
|
+
<CodeBlock language="json" title="tsconfig.json">
|
|
340
|
+
{docsSiteTsconfig}
|
|
341
|
+
</CodeBlock>
|
|
342
|
+
|
|
343
|
+
<CodeBlock language="yaml" title="pnpm-workspace.yaml">
|
|
344
|
+
{docsSiteWorkspace}
|
|
345
|
+
</CodeBlock>
|
|
346
|
+
|
|
347
|
+
<CodeBlock language="css" title="src/css/custom.css">
|
|
348
|
+
{docsSiteCss}
|
|
349
|
+
</CodeBlock>
|
|
350
|
+
|
|
351
|
+
<CodeBlock language="text" title=".gitignore">
|
|
352
|
+
{docsSiteGitignore}
|
|
353
|
+
</CodeBlock>
|
|
354
|
+
|
|
355
|
+
The home page sends `/docs` to the first Overview doc. Change the path if the overview file is renamed:
|
|
356
|
+
|
|
357
|
+
<CodeBlock language="tsx" title="src/pages/index.tsx">
|
|
358
|
+
{docsSiteHome}
|
|
359
|
+
</CodeBlock>
|
|
360
|
+
|
|
361
|
+
### The `/docs` route {#docs-route}
|
|
362
|
+
|
|
363
|
+
**Copy to:** `next.config.mjs` in the project root. If the project already has a Next.js config, add the `rewrites` function to it.
|
|
364
|
+
|
|
365
|
+
Plain file: [`/templates/next.config.mjs`](pathname:///templates/next.config.mjs)
|
|
366
|
+
|
|
367
|
+
<CodeBlock language="js" title="next.config.mjs">
|
|
368
|
+
{nextConfig}
|
|
369
|
+
</CodeBlock>
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Document templates {#document-templates}
|
|
374
|
+
|
|
375
|
+
**Copy to:** the `docs/` folder in the project root, keeping the folder layout
|
|
376
|
+
|
|
377
|
+
The full set of Decision Docs for a new project: every [reusable folder](/Standards/documentation#-the-folders) with every standard file, each marked `Status: Not started`. Copy the whole [`static/templates/docs/`](https://github.com/activatus-life/code-standards/tree/main/static/templates/docs) folder from this repository.
|
|
378
|
+
|
|
379
|
+
| Folder | Example file |
|
|
380
|
+
| --------------- | --------------------------------------------------------------------------------------------- |
|
|
381
|
+
| `overview/` | [`/templates/docs/overview/what-is-it.md`](pathname:///templates/docs/overview/what-is-it.md) |
|
|
382
|
+
| `architecture/` | [`/templates/docs/architecture/system.md`](pathname:///templates/docs/architecture/system.md) |
|
|
383
|
+
| `scope/` | [`/templates/docs/scope/core.md`](pathname:///templates/docs/scope/core.md) |
|
|
384
|
+
| …and 13 more | Each file is served at `/templates/docs/<folder>/<file>.md` |
|
|
385
|
+
|
|
386
|
+
After copying, rename `overview/what-is-it.md` after the project and update its title.
|
|
387
|
+
|
|
388
|
+
### Decision Doc format {#doc-format}
|
|
389
|
+
|
|
390
|
+
**Copy to:** any new doc that has no template file
|
|
391
|
+
|
|
392
|
+
The shape every doc follows. See [The doc format](/Standards/documentation#-the-doc-format). Plain file: [`/templates/decision-doc.md`](pathname:///templates/decision-doc.md)
|
|
393
|
+
|
|
394
|
+
<CodeBlock language="markdown" title="decision-doc.md">
|
|
395
|
+
{decisionDoc}
|
|
396
|
+
</CodeBlock>
|