aios-core 2.2.2 → 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/.aios-core/.session/current-session.json +14 -14
- package/.aios-core/cli/commands/migrate/validate.js +1 -1
- package/.aios-core/core/docs/session-update-pattern.md +17 -10
- package/.aios-core/core/elicitation/elicitation-engine.js +11 -6
- package/.aios-core/core/elicitation/session-manager.js +2 -1
- package/.aios-core/core/registry/registry-schema.json +166 -166
- package/.aios-core/core/registry/service-registry.json +6585 -6585
- package/.aios-core/core-config.yaml +66 -1
- package/.aios-core/data/agent-config-requirements.yaml +5 -5
- package/.aios-core/development/agents/devops.md +12 -0
- package/.aios-core/development/scripts/squad/README.md +112 -0
- package/.aios-core/development/scripts/squad/index.js +41 -0
- package/.aios-core/development/scripts/squad/squad-loader.js +359 -0
- package/.aios-core/development/scripts/squad/squad-validator.js +685 -0
- package/.aios-core/development/tasks/add-mcp.md +11 -5
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +240 -3
- package/.aios-core/development/tasks/search-mcp.md +309 -0
- package/.aios-core/development/tasks/setup-mcp-docker.md +11 -8
- package/.aios-core/development/tasks/squad-creator-validate.md +151 -0
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +3 -3
- package/.aios-core/index.d.ts +7 -7
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +1 -1
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +41 -0
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aios-core/infrastructure/tests/utilities-audit-results.json +500 -500
- package/.aios-core/infrastructure/tools/README.md +1 -1
- package/.aios-core/install-manifest.yaml +4 -1
- package/.aios-core/manifests/schema/manifest-schema.json +190 -190
- package/.aios-core/manifests/workers.csv +203 -203
- package/.aios-core/package.json +102 -102
- package/.aios-core/product/templates/activation-instructions-template.md +7 -7
- package/.aios-core/product/templates/adr.hbs +125 -125
- package/.aios-core/product/templates/component-react-tmpl.tsx +98 -98
- package/.aios-core/product/templates/dbdr.hbs +241 -241
- package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -102
- package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -205
- package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -175
- package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -175
- package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -300
- package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -152
- package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -222
- package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -154
- package/.aios-core/product/templates/epic.hbs +212 -212
- package/.aios-core/product/templates/eslintrc-security.json +32 -32
- package/.aios-core/product/templates/github-actions-cd.yml +212 -212
- package/.aios-core/product/templates/github-actions-ci.yml +172 -172
- package/.aios-core/product/templates/pmdr.hbs +186 -186
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aios-core/product/templates/prd.hbs +201 -201
- package/.aios-core/product/templates/shock-report-tmpl.html +502 -502
- package/.aios-core/product/templates/story.hbs +263 -263
- package/.aios-core/product/templates/task.hbs +170 -170
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aios-core/product/templates/tmpl-view.sql +177 -177
- package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -240
- package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -233
- package/.aios-core/schemas/squad-schema.json +185 -0
- package/.aios-core/scripts/README.md +90 -322
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -300
- package/.claude/rules/mcp-usage.md +116 -100
- package/LICENSE +48 -48
- package/README.md +3 -4
- package/bin/aios.js +2 -1
- package/package.json +1 -3
- package/packages/installer/package.json +39 -39
- package/templates/squad/LICENSE +21 -21
- package/templates/squad/README.md +37 -37
- package/templates/squad/agents/example-agent.yaml +36 -36
- package/templates/squad/package.json +19 -19
- package/templates/squad/squad.yaml +25 -25
- package/templates/squad/tasks/example-task.yaml +46 -46
- package/templates/squad/templates/example-template.md +24 -24
- package/templates/squad/tests/example-agent.test.js +53 -53
- package/templates/squad/workflows/example-workflow.yaml +54 -54
- package/tools/diagnose-npx-issue.ps1 +96 -96
- package/tools/quick-diagnose.cmd +85 -85
- package/tools/quick-diagnose.ps1 +117 -117
- package/.aios-core/core/data/agent-config-requirements.yaml +0 -368
- package/.aios-core/core/data/aios-kb.md +0 -924
- package/.aios-core/core/data/workflow-patterns.yaml +0 -267
- package/.aios-core/product/templates/1mcp-config.yaml +0 -225
- package/.aios-core/scripts/context-detector.js +0 -226
- package/.aios-core/scripts/elicitation-engine.js +0 -385
- package/.aios-core/scripts/elicitation-session-manager.js +0 -300
- package/.claude/CLAUDE.md +0 -221
|
@@ -1,170 +1,170 @@
|
|
|
1
|
-
---
|
|
2
|
-
template_id: task
|
|
3
|
-
template_name: Task
|
|
4
|
-
version: 1.0
|
|
5
|
-
variables:
|
|
6
|
-
- name: id
|
|
7
|
-
type: string
|
|
8
|
-
required: true
|
|
9
|
-
prompt: "Task ID:"
|
|
10
|
-
- name: name
|
|
11
|
-
type: string
|
|
12
|
-
required: true
|
|
13
|
-
prompt: "Task name:"
|
|
14
|
-
- name: description
|
|
15
|
-
type: text
|
|
16
|
-
required: true
|
|
17
|
-
prompt: "Task description:"
|
|
18
|
-
- name: status
|
|
19
|
-
type: choice
|
|
20
|
-
required: true
|
|
21
|
-
choices: [Pending, In Progress, Completed, Blocked, Cancelled]
|
|
22
|
-
default: Pending
|
|
23
|
-
- name: type
|
|
24
|
-
type: choice
|
|
25
|
-
required: false
|
|
26
|
-
choices: [Development, Design, Testing, Documentation, Research, Bugfix, Refactor]
|
|
27
|
-
default: Development
|
|
28
|
-
- name: priority
|
|
29
|
-
type: choice
|
|
30
|
-
required: false
|
|
31
|
-
choices: [P0, P1, P2, P3]
|
|
32
|
-
default: P1
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
# Task: {{name}}
|
|
36
|
-
|
|
37
|
-
**ID:** {{id}}
|
|
38
|
-
**Status:** {{#ifEqual status "Pending"}}⏳{{/ifEqual}}{{#ifEqual status "In Progress"}}🔄{{/ifEqual}}{{#ifEqual status "Completed"}}✅{{/ifEqual}}{{#ifEqual status "Blocked"}}🚫{{/ifEqual}}{{#ifEqual status "Cancelled"}}❌{{/ifEqual}} {{status}}
|
|
39
|
-
**Type:** {{default type "Development"}}
|
|
40
|
-
**Priority:** {{default priority "P1"}}
|
|
41
|
-
{{#if estimate}}**Estimate:** {{estimate}}{{/if}}
|
|
42
|
-
{{#if assignee}}**Assignee:** {{assignee}}{{/if}}
|
|
43
|
-
{{#if storyRef}}**Story:** {{storyRef}}{{/if}}
|
|
44
|
-
**Created:** {{formatDate now "YYYY-MM-DD"}}
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Description
|
|
49
|
-
|
|
50
|
-
{{description}}
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
{{#if inputs}}
|
|
55
|
-
## Inputs
|
|
56
|
-
|
|
57
|
-
{{#each inputs}}
|
|
58
|
-
- {{this}}
|
|
59
|
-
{{/each}}
|
|
60
|
-
{{/if}}
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
{{#if outputs}}
|
|
65
|
-
## Expected Outputs
|
|
66
|
-
|
|
67
|
-
{{#each outputs}}
|
|
68
|
-
- {{this}}
|
|
69
|
-
{{/each}}
|
|
70
|
-
{{/if}}
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Steps
|
|
75
|
-
|
|
76
|
-
{{#if steps}}
|
|
77
|
-
{{#each steps}}
|
|
78
|
-
{{add @index 1}}. [{{#if this.completed}}x{{else}} {{/if}}] {{this.step}}
|
|
79
|
-
{{#if this.notes}} _Note: {{this.notes}}_{{/if}}
|
|
80
|
-
{{/each}}
|
|
81
|
-
{{else}}
|
|
82
|
-
_Steps to be defined._
|
|
83
|
-
{{/if}}
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
{{#if validation}}
|
|
88
|
-
## Validation
|
|
89
|
-
|
|
90
|
-
### Criteria
|
|
91
|
-
{{#each validation.criteria}}
|
|
92
|
-
- [ ] {{this}}
|
|
93
|
-
{{/each}}
|
|
94
|
-
|
|
95
|
-
{{#if validation.commands}}
|
|
96
|
-
### Commands
|
|
97
|
-
```bash
|
|
98
|
-
{{#each validation.commands}}
|
|
99
|
-
{{this}}
|
|
100
|
-
{{/each}}
|
|
101
|
-
```
|
|
102
|
-
{{/if}}
|
|
103
|
-
{{/if}}
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
{{#if dependencies}}
|
|
108
|
-
## Dependencies
|
|
109
|
-
|
|
110
|
-
{{#each dependencies}}
|
|
111
|
-
- {{this}}
|
|
112
|
-
{{/each}}
|
|
113
|
-
{{/if}}
|
|
114
|
-
|
|
115
|
-
{{#if blockedBy}}
|
|
116
|
-
## Blocked By
|
|
117
|
-
|
|
118
|
-
{{blockedBy}}
|
|
119
|
-
{{/if}}
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
{{#if files}}
|
|
124
|
-
## Files Affected
|
|
125
|
-
|
|
126
|
-
| Path | Action |
|
|
127
|
-
|------|--------|
|
|
128
|
-
{{#each files}}
|
|
129
|
-
| `{{this.path}}` | {{this.action}} |
|
|
130
|
-
{{/each}}
|
|
131
|
-
{{/if}}
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
{{#if elicitation}}
|
|
136
|
-
{{#if elicitation.enabled}}
|
|
137
|
-
## Elicitation
|
|
138
|
-
|
|
139
|
-
{{#each elicitation.questions}}
|
|
140
|
-
### {{add @index 1}}. {{this.question}}
|
|
141
|
-
{{#ifEqual this.type "choice"}}
|
|
142
|
-
Options:
|
|
143
|
-
{{#each this.options}}
|
|
144
|
-
- {{this}}
|
|
145
|
-
{{/each}}
|
|
146
|
-
{{/ifEqual}}
|
|
147
|
-
{{/each}}
|
|
148
|
-
{{/if}}
|
|
149
|
-
{{/if}}
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
{{#if notes}}
|
|
154
|
-
## Notes
|
|
155
|
-
|
|
156
|
-
{{notes}}
|
|
157
|
-
{{/if}}
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
{{#if completedAt}}
|
|
162
|
-
## Completion
|
|
163
|
-
|
|
164
|
-
**Completed At:** {{completedAt}}
|
|
165
|
-
{{/if}}
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
**Generated by:** AIOS Template Engine v2.0
|
|
170
|
-
**Template Version:** task-1.0
|
|
1
|
+
---
|
|
2
|
+
template_id: task
|
|
3
|
+
template_name: Task
|
|
4
|
+
version: 1.0
|
|
5
|
+
variables:
|
|
6
|
+
- name: id
|
|
7
|
+
type: string
|
|
8
|
+
required: true
|
|
9
|
+
prompt: "Task ID:"
|
|
10
|
+
- name: name
|
|
11
|
+
type: string
|
|
12
|
+
required: true
|
|
13
|
+
prompt: "Task name:"
|
|
14
|
+
- name: description
|
|
15
|
+
type: text
|
|
16
|
+
required: true
|
|
17
|
+
prompt: "Task description:"
|
|
18
|
+
- name: status
|
|
19
|
+
type: choice
|
|
20
|
+
required: true
|
|
21
|
+
choices: [Pending, In Progress, Completed, Blocked, Cancelled]
|
|
22
|
+
default: Pending
|
|
23
|
+
- name: type
|
|
24
|
+
type: choice
|
|
25
|
+
required: false
|
|
26
|
+
choices: [Development, Design, Testing, Documentation, Research, Bugfix, Refactor]
|
|
27
|
+
default: Development
|
|
28
|
+
- name: priority
|
|
29
|
+
type: choice
|
|
30
|
+
required: false
|
|
31
|
+
choices: [P0, P1, P2, P3]
|
|
32
|
+
default: P1
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
# Task: {{name}}
|
|
36
|
+
|
|
37
|
+
**ID:** {{id}}
|
|
38
|
+
**Status:** {{#ifEqual status "Pending"}}⏳{{/ifEqual}}{{#ifEqual status "In Progress"}}🔄{{/ifEqual}}{{#ifEqual status "Completed"}}✅{{/ifEqual}}{{#ifEqual status "Blocked"}}🚫{{/ifEqual}}{{#ifEqual status "Cancelled"}}❌{{/ifEqual}} {{status}}
|
|
39
|
+
**Type:** {{default type "Development"}}
|
|
40
|
+
**Priority:** {{default priority "P1"}}
|
|
41
|
+
{{#if estimate}}**Estimate:** {{estimate}}{{/if}}
|
|
42
|
+
{{#if assignee}}**Assignee:** {{assignee}}{{/if}}
|
|
43
|
+
{{#if storyRef}}**Story:** {{storyRef}}{{/if}}
|
|
44
|
+
**Created:** {{formatDate now "YYYY-MM-DD"}}
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Description
|
|
49
|
+
|
|
50
|
+
{{description}}
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
{{#if inputs}}
|
|
55
|
+
## Inputs
|
|
56
|
+
|
|
57
|
+
{{#each inputs}}
|
|
58
|
+
- {{this}}
|
|
59
|
+
{{/each}}
|
|
60
|
+
{{/if}}
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
{{#if outputs}}
|
|
65
|
+
## Expected Outputs
|
|
66
|
+
|
|
67
|
+
{{#each outputs}}
|
|
68
|
+
- {{this}}
|
|
69
|
+
{{/each}}
|
|
70
|
+
{{/if}}
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Steps
|
|
75
|
+
|
|
76
|
+
{{#if steps}}
|
|
77
|
+
{{#each steps}}
|
|
78
|
+
{{add @index 1}}. [{{#if this.completed}}x{{else}} {{/if}}] {{this.step}}
|
|
79
|
+
{{#if this.notes}} _Note: {{this.notes}}_{{/if}}
|
|
80
|
+
{{/each}}
|
|
81
|
+
{{else}}
|
|
82
|
+
_Steps to be defined._
|
|
83
|
+
{{/if}}
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
{{#if validation}}
|
|
88
|
+
## Validation
|
|
89
|
+
|
|
90
|
+
### Criteria
|
|
91
|
+
{{#each validation.criteria}}
|
|
92
|
+
- [ ] {{this}}
|
|
93
|
+
{{/each}}
|
|
94
|
+
|
|
95
|
+
{{#if validation.commands}}
|
|
96
|
+
### Commands
|
|
97
|
+
```bash
|
|
98
|
+
{{#each validation.commands}}
|
|
99
|
+
{{this}}
|
|
100
|
+
{{/each}}
|
|
101
|
+
```
|
|
102
|
+
{{/if}}
|
|
103
|
+
{{/if}}
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
{{#if dependencies}}
|
|
108
|
+
## Dependencies
|
|
109
|
+
|
|
110
|
+
{{#each dependencies}}
|
|
111
|
+
- {{this}}
|
|
112
|
+
{{/each}}
|
|
113
|
+
{{/if}}
|
|
114
|
+
|
|
115
|
+
{{#if blockedBy}}
|
|
116
|
+
## Blocked By
|
|
117
|
+
|
|
118
|
+
{{blockedBy}}
|
|
119
|
+
{{/if}}
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
{{#if files}}
|
|
124
|
+
## Files Affected
|
|
125
|
+
|
|
126
|
+
| Path | Action |
|
|
127
|
+
|------|--------|
|
|
128
|
+
{{#each files}}
|
|
129
|
+
| `{{this.path}}` | {{this.action}} |
|
|
130
|
+
{{/each}}
|
|
131
|
+
{{/if}}
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
{{#if elicitation}}
|
|
136
|
+
{{#if elicitation.enabled}}
|
|
137
|
+
## Elicitation
|
|
138
|
+
|
|
139
|
+
{{#each elicitation.questions}}
|
|
140
|
+
### {{add @index 1}}. {{this.question}}
|
|
141
|
+
{{#ifEqual this.type "choice"}}
|
|
142
|
+
Options:
|
|
143
|
+
{{#each this.options}}
|
|
144
|
+
- {{this}}
|
|
145
|
+
{{/each}}
|
|
146
|
+
{{/ifEqual}}
|
|
147
|
+
{{/each}}
|
|
148
|
+
{{/if}}
|
|
149
|
+
{{/if}}
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
{{#if notes}}
|
|
154
|
+
## Notes
|
|
155
|
+
|
|
156
|
+
{{notes}}
|
|
157
|
+
{{/if}}
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
{{#if completedAt}}
|
|
162
|
+
## Completion
|
|
163
|
+
|
|
164
|
+
**Completed At:** {{completedAt}}
|
|
165
|
+
{{/if}}
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
**Generated by:** AIOS Template Engine v2.0
|
|
170
|
+
**Template Version:** task-1.0
|
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
-- COMMENT ON Examples Template
|
|
2
|
-
-- Purpose: Document database objects inline using PostgreSQL COMMENT ON
|
|
3
|
-
-- Created: :created_date
|
|
4
|
-
-- Author: :author
|
|
5
|
-
--
|
|
6
|
-
-- IMPORTANT: Comments are metadata that help future developers understand the schema
|
|
7
|
-
|
|
8
|
-
-- =============================================================================
|
|
9
|
-
-- TABLE COMMENTS
|
|
10
|
-
-- =============================================================================
|
|
11
|
-
|
|
12
|
-
-- Basic table comment
|
|
13
|
-
COMMENT ON TABLE :table_name IS 'Description of what this table stores and its purpose';
|
|
14
|
-
|
|
15
|
-
-- Detailed table comment with usage notes
|
|
16
|
-
COMMENT ON TABLE users IS
|
|
17
|
-
'User accounts for the application.
|
|
18
|
-
Primary user data is stored here, with profile details in user_profiles.
|
|
19
|
-
RLS policies ensure users can only access their own data.
|
|
20
|
-
Related tables: user_profiles, user_roles, user_sessions';
|
|
21
|
-
|
|
22
|
-
-- =============================================================================
|
|
23
|
-
-- COLUMN COMMENTS
|
|
24
|
-
-- =============================================================================
|
|
25
|
-
|
|
26
|
-
-- Standard audit columns
|
|
27
|
-
COMMENT ON COLUMN :table_name.id IS 'Unique identifier (UUID v4)';
|
|
28
|
-
COMMENT ON COLUMN :table_name.created_at IS 'Timestamp when record was created';
|
|
29
|
-
COMMENT ON COLUMN :table_name.updated_at IS 'Timestamp of last modification';
|
|
30
|
-
COMMENT ON COLUMN :table_name.deleted_at IS 'Soft delete timestamp (NULL if active)';
|
|
31
|
-
|
|
32
|
-
-- Business columns with context
|
|
33
|
-
COMMENT ON COLUMN users.email IS 'Primary email for login and notifications. Must be unique.';
|
|
34
|
-
COMMENT ON COLUMN users.status IS 'Account status: active, pending, suspended, deleted';
|
|
35
|
-
|
|
36
|
-
-- Columns with constraints explained
|
|
37
|
-
COMMENT ON COLUMN orders.total_amount IS
|
|
38
|
-
'Order total in cents (not dollars). Calculated from line items.
|
|
39
|
-
Constraint: Must be >= 0';
|
|
40
|
-
|
|
41
|
-
-- Foreign key columns
|
|
42
|
-
COMMENT ON COLUMN orders.user_id IS
|
|
43
|
-
'References users.id. Owner of this order.
|
|
44
|
-
CASCADE on delete (user deletion removes orders).';
|
|
45
|
-
|
|
46
|
-
-- JSONB columns with structure
|
|
47
|
-
COMMENT ON COLUMN users.preferences IS
|
|
48
|
-
'User preferences as JSONB. Structure:
|
|
49
|
-
{
|
|
50
|
-
"theme": "dark" | "light",
|
|
51
|
-
"notifications": { "email": boolean, "push": boolean },
|
|
52
|
-
"language": "en" | "pt" | "es"
|
|
53
|
-
}';
|
|
54
|
-
|
|
55
|
-
-- =============================================================================
|
|
56
|
-
-- INDEX COMMENTS
|
|
57
|
-
-- =============================================================================
|
|
58
|
-
|
|
59
|
-
COMMENT ON INDEX idx_users_email IS 'Unique index for email lookups and login';
|
|
60
|
-
COMMENT ON INDEX idx_orders_user_id IS 'Foreign key index for user order queries';
|
|
61
|
-
COMMENT ON INDEX idx_orders_created_at IS 'Date range queries on order creation';
|
|
62
|
-
|
|
63
|
-
-- Composite index explanation
|
|
64
|
-
COMMENT ON INDEX idx_orders_user_status IS
|
|
65
|
-
'Composite index for filtering user orders by status.
|
|
66
|
-
Covers queries: WHERE user_id = ? AND status = ?';
|
|
67
|
-
|
|
68
|
-
-- =============================================================================
|
|
69
|
-
-- CONSTRAINT COMMENTS
|
|
70
|
-
-- =============================================================================
|
|
71
|
-
|
|
72
|
-
-- Check constraints
|
|
73
|
-
COMMENT ON CONSTRAINT orders_total_positive ON orders IS
|
|
74
|
-
'Ensures total_amount is never negative';
|
|
75
|
-
|
|
76
|
-
COMMENT ON CONSTRAINT users_email_format ON users IS
|
|
77
|
-
'Validates email format using regex pattern';
|
|
78
|
-
|
|
79
|
-
-- Foreign key constraints
|
|
80
|
-
COMMENT ON CONSTRAINT orders_user_id_fkey ON orders IS
|
|
81
|
-
'Links order to user. ON DELETE CASCADE removes orphan orders.';
|
|
82
|
-
|
|
83
|
-
-- =============================================================================
|
|
84
|
-
-- FUNCTION COMMENTS
|
|
85
|
-
-- =============================================================================
|
|
86
|
-
|
|
87
|
-
COMMENT ON FUNCTION update_updated_at_column() IS
|
|
88
|
-
'Trigger function to auto-update updated_at column.
|
|
89
|
-
Used by: All tables with updated_at column.
|
|
90
|
-
Trigger timing: BEFORE UPDATE FOR EACH ROW';
|
|
91
|
-
|
|
92
|
-
COMMENT ON FUNCTION calculate_order_total(UUID) IS
|
|
93
|
-
'Calculates order total from line items.
|
|
94
|
-
Parameters: order_id UUID
|
|
95
|
-
Returns: NUMERIC(10,2) total in cents
|
|
96
|
-
Usage: SELECT calculate_order_total(order_id) FROM orders';
|
|
97
|
-
|
|
98
|
-
-- =============================================================================
|
|
99
|
-
-- TRIGGER COMMENTS
|
|
100
|
-
-- =============================================================================
|
|
101
|
-
|
|
102
|
-
COMMENT ON TRIGGER trigger_orders_updated_at ON orders IS
|
|
103
|
-
'Auto-updates updated_at on row modification';
|
|
104
|
-
|
|
105
|
-
COMMENT ON TRIGGER trigger_orders_audit ON orders IS
|
|
106
|
-
'Logs all changes to audit_log table';
|
|
107
|
-
|
|
108
|
-
-- =============================================================================
|
|
109
|
-
-- VIEW COMMENTS
|
|
110
|
-
-- =============================================================================
|
|
111
|
-
|
|
112
|
-
COMMENT ON VIEW user_dashboard IS
|
|
113
|
-
'Aggregated user data for dashboard display.
|
|
114
|
-
Includes: user info, order counts, recent activity.
|
|
115
|
-
Performance: Uses materialized subqueries for counts.
|
|
116
|
-
Refresh: Live data (not materialized)';
|
|
117
|
-
|
|
118
|
-
-- =============================================================================
|
|
119
|
-
-- TYPE COMMENTS (for custom types)
|
|
120
|
-
-- =============================================================================
|
|
121
|
-
|
|
122
|
-
-- COMMENT ON TYPE order_status IS
|
|
123
|
-
-- 'Enum for order lifecycle: pending, processing, shipped, delivered, cancelled';
|
|
124
|
-
|
|
125
|
-
-- =============================================================================
|
|
126
|
-
-- SCHEMA COMMENTS
|
|
127
|
-
-- =============================================================================
|
|
128
|
-
|
|
129
|
-
COMMENT ON SCHEMA public IS 'Main application schema with user-facing tables';
|
|
130
|
-
-- COMMENT ON SCHEMA audit IS 'Audit logging and compliance tracking';
|
|
131
|
-
-- COMMENT ON SCHEMA analytics IS 'Aggregated data for reporting';
|
|
132
|
-
|
|
133
|
-
-- =============================================================================
|
|
134
|
-
-- VIEWING COMMENTS
|
|
135
|
-
-- =============================================================================
|
|
136
|
-
|
|
137
|
-
-- View table comments
|
|
138
|
-
SELECT
|
|
139
|
-
t.table_name,
|
|
140
|
-
pg_catalog.obj_description(
|
|
141
|
-
(quote_ident(t.table_schema) || '.' || quote_ident(t.table_name))::regclass,
|
|
142
|
-
'pg_class'
|
|
143
|
-
) AS comment
|
|
144
|
-
FROM information_schema.tables t
|
|
145
|
-
WHERE t.table_schema = 'public'
|
|
146
|
-
AND t.table_type = 'BASE TABLE';
|
|
147
|
-
|
|
148
|
-
-- View column comments
|
|
149
|
-
SELECT
|
|
150
|
-
c.table_name,
|
|
151
|
-
c.column_name,
|
|
152
|
-
pg_catalog.col_description(
|
|
153
|
-
(quote_ident(c.table_schema) || '.' || quote_ident(c.table_name))::regclass,
|
|
154
|
-
c.ordinal_position
|
|
155
|
-
) AS comment
|
|
156
|
-
FROM information_schema.columns c
|
|
157
|
-
WHERE c.table_schema = 'public'
|
|
158
|
-
ORDER BY c.table_name, c.ordinal_position;
|
|
1
|
+
-- COMMENT ON Examples Template
|
|
2
|
+
-- Purpose: Document database objects inline using PostgreSQL COMMENT ON
|
|
3
|
+
-- Created: :created_date
|
|
4
|
+
-- Author: :author
|
|
5
|
+
--
|
|
6
|
+
-- IMPORTANT: Comments are metadata that help future developers understand the schema
|
|
7
|
+
|
|
8
|
+
-- =============================================================================
|
|
9
|
+
-- TABLE COMMENTS
|
|
10
|
+
-- =============================================================================
|
|
11
|
+
|
|
12
|
+
-- Basic table comment
|
|
13
|
+
COMMENT ON TABLE :table_name IS 'Description of what this table stores and its purpose';
|
|
14
|
+
|
|
15
|
+
-- Detailed table comment with usage notes
|
|
16
|
+
COMMENT ON TABLE users IS
|
|
17
|
+
'User accounts for the application.
|
|
18
|
+
Primary user data is stored here, with profile details in user_profiles.
|
|
19
|
+
RLS policies ensure users can only access their own data.
|
|
20
|
+
Related tables: user_profiles, user_roles, user_sessions';
|
|
21
|
+
|
|
22
|
+
-- =============================================================================
|
|
23
|
+
-- COLUMN COMMENTS
|
|
24
|
+
-- =============================================================================
|
|
25
|
+
|
|
26
|
+
-- Standard audit columns
|
|
27
|
+
COMMENT ON COLUMN :table_name.id IS 'Unique identifier (UUID v4)';
|
|
28
|
+
COMMENT ON COLUMN :table_name.created_at IS 'Timestamp when record was created';
|
|
29
|
+
COMMENT ON COLUMN :table_name.updated_at IS 'Timestamp of last modification';
|
|
30
|
+
COMMENT ON COLUMN :table_name.deleted_at IS 'Soft delete timestamp (NULL if active)';
|
|
31
|
+
|
|
32
|
+
-- Business columns with context
|
|
33
|
+
COMMENT ON COLUMN users.email IS 'Primary email for login and notifications. Must be unique.';
|
|
34
|
+
COMMENT ON COLUMN users.status IS 'Account status: active, pending, suspended, deleted';
|
|
35
|
+
|
|
36
|
+
-- Columns with constraints explained
|
|
37
|
+
COMMENT ON COLUMN orders.total_amount IS
|
|
38
|
+
'Order total in cents (not dollars). Calculated from line items.
|
|
39
|
+
Constraint: Must be >= 0';
|
|
40
|
+
|
|
41
|
+
-- Foreign key columns
|
|
42
|
+
COMMENT ON COLUMN orders.user_id IS
|
|
43
|
+
'References users.id. Owner of this order.
|
|
44
|
+
CASCADE on delete (user deletion removes orders).';
|
|
45
|
+
|
|
46
|
+
-- JSONB columns with structure
|
|
47
|
+
COMMENT ON COLUMN users.preferences IS
|
|
48
|
+
'User preferences as JSONB. Structure:
|
|
49
|
+
{
|
|
50
|
+
"theme": "dark" | "light",
|
|
51
|
+
"notifications": { "email": boolean, "push": boolean },
|
|
52
|
+
"language": "en" | "pt" | "es"
|
|
53
|
+
}';
|
|
54
|
+
|
|
55
|
+
-- =============================================================================
|
|
56
|
+
-- INDEX COMMENTS
|
|
57
|
+
-- =============================================================================
|
|
58
|
+
|
|
59
|
+
COMMENT ON INDEX idx_users_email IS 'Unique index for email lookups and login';
|
|
60
|
+
COMMENT ON INDEX idx_orders_user_id IS 'Foreign key index for user order queries';
|
|
61
|
+
COMMENT ON INDEX idx_orders_created_at IS 'Date range queries on order creation';
|
|
62
|
+
|
|
63
|
+
-- Composite index explanation
|
|
64
|
+
COMMENT ON INDEX idx_orders_user_status IS
|
|
65
|
+
'Composite index for filtering user orders by status.
|
|
66
|
+
Covers queries: WHERE user_id = ? AND status = ?';
|
|
67
|
+
|
|
68
|
+
-- =============================================================================
|
|
69
|
+
-- CONSTRAINT COMMENTS
|
|
70
|
+
-- =============================================================================
|
|
71
|
+
|
|
72
|
+
-- Check constraints
|
|
73
|
+
COMMENT ON CONSTRAINT orders_total_positive ON orders IS
|
|
74
|
+
'Ensures total_amount is never negative';
|
|
75
|
+
|
|
76
|
+
COMMENT ON CONSTRAINT users_email_format ON users IS
|
|
77
|
+
'Validates email format using regex pattern';
|
|
78
|
+
|
|
79
|
+
-- Foreign key constraints
|
|
80
|
+
COMMENT ON CONSTRAINT orders_user_id_fkey ON orders IS
|
|
81
|
+
'Links order to user. ON DELETE CASCADE removes orphan orders.';
|
|
82
|
+
|
|
83
|
+
-- =============================================================================
|
|
84
|
+
-- FUNCTION COMMENTS
|
|
85
|
+
-- =============================================================================
|
|
86
|
+
|
|
87
|
+
COMMENT ON FUNCTION update_updated_at_column() IS
|
|
88
|
+
'Trigger function to auto-update updated_at column.
|
|
89
|
+
Used by: All tables with updated_at column.
|
|
90
|
+
Trigger timing: BEFORE UPDATE FOR EACH ROW';
|
|
91
|
+
|
|
92
|
+
COMMENT ON FUNCTION calculate_order_total(UUID) IS
|
|
93
|
+
'Calculates order total from line items.
|
|
94
|
+
Parameters: order_id UUID
|
|
95
|
+
Returns: NUMERIC(10,2) total in cents
|
|
96
|
+
Usage: SELECT calculate_order_total(order_id) FROM orders';
|
|
97
|
+
|
|
98
|
+
-- =============================================================================
|
|
99
|
+
-- TRIGGER COMMENTS
|
|
100
|
+
-- =============================================================================
|
|
101
|
+
|
|
102
|
+
COMMENT ON TRIGGER trigger_orders_updated_at ON orders IS
|
|
103
|
+
'Auto-updates updated_at on row modification';
|
|
104
|
+
|
|
105
|
+
COMMENT ON TRIGGER trigger_orders_audit ON orders IS
|
|
106
|
+
'Logs all changes to audit_log table';
|
|
107
|
+
|
|
108
|
+
-- =============================================================================
|
|
109
|
+
-- VIEW COMMENTS
|
|
110
|
+
-- =============================================================================
|
|
111
|
+
|
|
112
|
+
COMMENT ON VIEW user_dashboard IS
|
|
113
|
+
'Aggregated user data for dashboard display.
|
|
114
|
+
Includes: user info, order counts, recent activity.
|
|
115
|
+
Performance: Uses materialized subqueries for counts.
|
|
116
|
+
Refresh: Live data (not materialized)';
|
|
117
|
+
|
|
118
|
+
-- =============================================================================
|
|
119
|
+
-- TYPE COMMENTS (for custom types)
|
|
120
|
+
-- =============================================================================
|
|
121
|
+
|
|
122
|
+
-- COMMENT ON TYPE order_status IS
|
|
123
|
+
-- 'Enum for order lifecycle: pending, processing, shipped, delivered, cancelled';
|
|
124
|
+
|
|
125
|
+
-- =============================================================================
|
|
126
|
+
-- SCHEMA COMMENTS
|
|
127
|
+
-- =============================================================================
|
|
128
|
+
|
|
129
|
+
COMMENT ON SCHEMA public IS 'Main application schema with user-facing tables';
|
|
130
|
+
-- COMMENT ON SCHEMA audit IS 'Audit logging and compliance tracking';
|
|
131
|
+
-- COMMENT ON SCHEMA analytics IS 'Aggregated data for reporting';
|
|
132
|
+
|
|
133
|
+
-- =============================================================================
|
|
134
|
+
-- VIEWING COMMENTS
|
|
135
|
+
-- =============================================================================
|
|
136
|
+
|
|
137
|
+
-- View table comments
|
|
138
|
+
SELECT
|
|
139
|
+
t.table_name,
|
|
140
|
+
pg_catalog.obj_description(
|
|
141
|
+
(quote_ident(t.table_schema) || '.' || quote_ident(t.table_name))::regclass,
|
|
142
|
+
'pg_class'
|
|
143
|
+
) AS comment
|
|
144
|
+
FROM information_schema.tables t
|
|
145
|
+
WHERE t.table_schema = 'public'
|
|
146
|
+
AND t.table_type = 'BASE TABLE';
|
|
147
|
+
|
|
148
|
+
-- View column comments
|
|
149
|
+
SELECT
|
|
150
|
+
c.table_name,
|
|
151
|
+
c.column_name,
|
|
152
|
+
pg_catalog.col_description(
|
|
153
|
+
(quote_ident(c.table_schema) || '.' || quote_ident(c.table_name))::regclass,
|
|
154
|
+
c.ordinal_position
|
|
155
|
+
) AS comment
|
|
156
|
+
FROM information_schema.columns c
|
|
157
|
+
WHERE c.table_schema = 'public'
|
|
158
|
+
ORDER BY c.table_name, c.ordinal_position;
|