ace-docs 0.31.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.
- checksums.yaml +7 -0
- data/.ace-defaults/docs/config.yml +169 -0
- data/.ace-defaults/docs/multi-subject-example.md +130 -0
- data/.ace-defaults/docs/single-subject-example.md +150 -0
- data/.ace-defaults/nav/protocols/guide-sources/ace-docs.yml +10 -0
- data/.ace-defaults/nav/protocols/prompt-sources/ace-docs.yml +34 -0
- data/.ace-defaults/nav/protocols/tmpl-sources/ace-docs.yml +10 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-docs.yml +19 -0
- data/CHANGELOG.md +1082 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +14 -0
- data/exe/ace-docs +14 -0
- data/handbook/guides/documentation/ruby.md +16 -0
- data/handbook/guides/documentation/rust.md +35 -0
- data/handbook/guides/documentation/typescript.md +18 -0
- data/handbook/guides/documentation.g.md +437 -0
- data/handbook/guides/documents-embedded-sync.g.md +473 -0
- data/handbook/guides/documents-embedding.g.md +276 -0
- data/handbook/guides/markdown-style.g.md +290 -0
- data/handbook/prompts/ace-change-analyzer.system.md +113 -0
- data/handbook/prompts/ace-change-analyzer.user.md +95 -0
- data/handbook/prompts/document-analysis.md +74 -0
- data/handbook/prompts/document-analysis.system.md +129 -0
- data/handbook/prompts/markdown-style.system.md +113 -0
- data/handbook/skills/as-docs-create-adr/SKILL.md +35 -0
- data/handbook/skills/as-docs-create-api/SKILL.md +35 -0
- data/handbook/skills/as-docs-create-user/SKILL.md +35 -0
- data/handbook/skills/as-docs-maintain-adrs/SKILL.md +35 -0
- data/handbook/skills/as-docs-squash-changelog/SKILL.md +42 -0
- data/handbook/skills/as-docs-update/SKILL.md +36 -0
- data/handbook/skills/as-docs-update-blueprint/SKILL.md +28 -0
- data/handbook/skills/as-docs-update-roadmap/SKILL.md +24 -0
- data/handbook/skills/as-docs-update-tools/SKILL.md +36 -0
- data/handbook/skills/as-docs-update-usage/SKILL.md +26 -0
- data/handbook/templates/code-docs/javascript-jsdoc.template.md +102 -0
- data/handbook/templates/code-docs/ruby-yard.template.md +85 -0
- data/handbook/templates/project-docs/README.template.md +73 -0
- data/handbook/templates/project-docs/architecture.template.md +300 -0
- data/handbook/templates/project-docs/blueprint.template.md +165 -0
- data/handbook/templates/project-docs/context/ownership.yml +160 -0
- data/handbook/templates/project-docs/decisions/adr.template.md +60 -0
- data/handbook/templates/project-docs/prd.template.md +144 -0
- data/handbook/templates/project-docs/roadmap/roadmap.template.md +47 -0
- data/handbook/templates/project-docs/vision.template.md +233 -0
- data/handbook/templates/user-docs/user-guide.template.md +107 -0
- data/handbook/workflow-instructions/docs/create-adr.wf.md +334 -0
- data/handbook/workflow-instructions/docs/create-api.wf.md +448 -0
- data/handbook/workflow-instructions/docs/create-cookbook.wf.md +434 -0
- data/handbook/workflow-instructions/docs/create-user.wf.md +399 -0
- data/handbook/workflow-instructions/docs/maintain-adrs.wf.md +589 -0
- data/handbook/workflow-instructions/docs/squash-changelog.wf.md +246 -0
- data/handbook/workflow-instructions/docs/update-blueprint.wf.md +361 -0
- data/handbook/workflow-instructions/docs/update-context.wf.md +336 -0
- data/handbook/workflow-instructions/docs/update-roadmap.wf.md +421 -0
- data/handbook/workflow-instructions/docs/update-tools.wf.md +307 -0
- data/handbook/workflow-instructions/docs/update-usage.wf.md +710 -0
- data/handbook/workflow-instructions/docs/update.wf.md +418 -0
- data/lib/ace/docs/atoms/diff_filterer.rb +131 -0
- data/lib/ace/docs/atoms/frontmatter_free_matcher.rb +20 -0
- data/lib/ace/docs/atoms/git_date_resolver.rb +16 -0
- data/lib/ace/docs/atoms/readme_metadata_inferrer.rb +60 -0
- data/lib/ace/docs/atoms/terminology_extractor.rb +308 -0
- data/lib/ace/docs/atoms/time_range_calculator.rb +96 -0
- data/lib/ace/docs/atoms/timestamp_parser.rb +106 -0
- data/lib/ace/docs/atoms/type_inferrer.rb +70 -0
- data/lib/ace/docs/cli/commands/analyze.rb +351 -0
- data/lib/ace/docs/cli/commands/analyze_consistency.rb +185 -0
- data/lib/ace/docs/cli/commands/discover.rb +75 -0
- data/lib/ace/docs/cli/commands/scope_options.rb +71 -0
- data/lib/ace/docs/cli/commands/status.rb +241 -0
- data/lib/ace/docs/cli/commands/update.rb +198 -0
- data/lib/ace/docs/cli/commands/validate.rb +225 -0
- data/lib/ace/docs/cli.rb +60 -0
- data/lib/ace/docs/models/analysis_report.rb +120 -0
- data/lib/ace/docs/models/consistency_report.rb +259 -0
- data/lib/ace/docs/models/document.rb +354 -0
- data/lib/ace/docs/molecules/change_detector.rb +389 -0
- data/lib/ace/docs/molecules/document_loader.rb +133 -0
- data/lib/ace/docs/molecules/frontmatter_manager.rb +85 -0
- data/lib/ace/docs/molecules/git_date_resolver.rb +30 -0
- data/lib/ace/docs/organisms/cross_document_analyzer.rb +274 -0
- data/lib/ace/docs/organisms/document_registry.rb +318 -0
- data/lib/ace/docs/organisms/validator.rb +164 -0
- data/lib/ace/docs/prompts/compact_diff_prompt.rb +119 -0
- data/lib/ace/docs/prompts/consistency_prompt.rb +286 -0
- data/lib/ace/docs/prompts/document_analysis_prompt.rb +389 -0
- data/lib/ace/docs/version.rb +7 -0
- data/lib/ace/docs.rb +82 -0
- data/lib/test.rb +4 -0
- metadata +347 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: as-docs-update-tools
|
|
3
|
+
description: Update ace-* package documentation from implementation and tests
|
|
4
|
+
# bundle: wfi://docs/update-tools
|
|
5
|
+
# context: no-fork
|
|
6
|
+
# agent: general-purpose
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Bash(ace-handbook:*)
|
|
10
|
+
- Bash(ace-bundle:*)
|
|
11
|
+
- Read
|
|
12
|
+
- Write
|
|
13
|
+
- Edit
|
|
14
|
+
- MultiEdit
|
|
15
|
+
- Glob
|
|
16
|
+
- Grep
|
|
17
|
+
- LS
|
|
18
|
+
- TodoWrite
|
|
19
|
+
argument-hint: [component]
|
|
20
|
+
last_modified: 2026-01-10
|
|
21
|
+
source: ace-docs
|
|
22
|
+
integration:
|
|
23
|
+
targets:
|
|
24
|
+
- claude
|
|
25
|
+
- codex
|
|
26
|
+
- gemini
|
|
27
|
+
- opencode
|
|
28
|
+
- pi
|
|
29
|
+
providers: {}
|
|
30
|
+
skill:
|
|
31
|
+
kind: workflow
|
|
32
|
+
execution:
|
|
33
|
+
workflow: wfi://docs/update-tools
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
Load and run `ace-bundle wfi://docs/update-tools` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: as-docs-update-usage
|
|
3
|
+
description: Update usage documentation based on feedback or requirements
|
|
4
|
+
# bundle: wfi://docs/update-usage
|
|
5
|
+
# context: no-fork
|
|
6
|
+
# agent: general-purpose
|
|
7
|
+
user-invocable: true
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Bash(ace-task:*)
|
|
10
|
+
- Bash(ace-bundle:*)
|
|
11
|
+
- Read
|
|
12
|
+
- Write
|
|
13
|
+
- Edit
|
|
14
|
+
- Grep
|
|
15
|
+
- Glob
|
|
16
|
+
argument-hint: [usage-file-path or feedback-description]
|
|
17
|
+
last_modified: 2026-01-10
|
|
18
|
+
source: ace-task
|
|
19
|
+
skill:
|
|
20
|
+
kind: workflow
|
|
21
|
+
execution:
|
|
22
|
+
workflow: wfi://docs/update-usage
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
Load and run `ace-bundle wfi://docs/update-usage` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: template
|
|
3
|
+
title: JavaScript JSDoc Documentation Template
|
|
4
|
+
purpose: Documentation for ace-docs/handbook/templates/code-docs/javascript-jsdoc.template.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-01-08
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# JavaScript JSDoc Documentation Template
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
/**
|
|
14
|
+
* [Brief description of what this function/class does]
|
|
15
|
+
*
|
|
16
|
+
* @description [Detailed description including purpose, behavior, and context.
|
|
17
|
+
* Explain what the function/class does, why it's useful, and how it fits
|
|
18
|
+
* into the larger system.]
|
|
19
|
+
*
|
|
20
|
+
* @param {Type} parameterName - [Description of parameter]
|
|
21
|
+
* @param {Type} anotherParam - [Description with constraints/validation]
|
|
22
|
+
* @param {Object} [options={}] - [Description of options object]
|
|
23
|
+
* @param {Type} [options.optionName=defaultValue] - [Description of option]
|
|
24
|
+
* @param {Type} [options.anotherOption] - [Description of another option]
|
|
25
|
+
*
|
|
26
|
+
* @returns {Type|Promise<Type>} [Description of what is returned]
|
|
27
|
+
*
|
|
28
|
+
* @throws {ErrorClass} [Description of when this error is thrown]
|
|
29
|
+
* @throws {AnotherError} [Description of another error condition]
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* // [Example title - basic usage]
|
|
33
|
+
* const result = functionName(param1, param2);
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // [Example title - advanced usage]
|
|
37
|
+
* try {
|
|
38
|
+
* const result = await functionName({
|
|
39
|
+
* param: 'value',
|
|
40
|
+
* options: { setting: true }
|
|
41
|
+
* });
|
|
42
|
+
* } catch (error) {
|
|
43
|
+
* console.error('Error:', error.message);
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* @since [version when added]
|
|
47
|
+
* @deprecated [version when deprecated] Use [alternative] instead
|
|
48
|
+
*/
|
|
49
|
+
function functionName(parameterName, anotherParam, options = {}) {
|
|
50
|
+
// Implementation
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## JSDoc Tag Reference
|
|
55
|
+
|
|
56
|
+
### Basic Tags
|
|
57
|
+
|
|
58
|
+
- `@param {Type} name - description` - Parameter documentation
|
|
59
|
+
- `@returns {Type} description` - Return value documentation
|
|
60
|
+
- `@throws {ErrorType} description` - Exception documentation
|
|
61
|
+
- `@example` - Code examples
|
|
62
|
+
- `@description` - Detailed description
|
|
63
|
+
|
|
64
|
+
### Type Annotations
|
|
65
|
+
|
|
66
|
+
- `{string}` - String type
|
|
67
|
+
- `{number}` - Number type
|
|
68
|
+
- `{boolean}` - Boolean type
|
|
69
|
+
- `{Object}` - Object type
|
|
70
|
+
- `{Array<Type>}` - Array of specific type
|
|
71
|
+
- `{Type|null}` - Union types
|
|
72
|
+
- `{Promise<Type>}` - Promise types
|
|
73
|
+
|
|
74
|
+
### Optional Parameters
|
|
75
|
+
|
|
76
|
+
- `{Type} [paramName]` - Optional parameter
|
|
77
|
+
- `{Type} [paramName=defaultValue]` - Optional with default
|
|
78
|
+
|
|
79
|
+
### Metadata Tags
|
|
80
|
+
|
|
81
|
+
- `@since` - Version when added
|
|
82
|
+
- `@deprecated` - Deprecation notice
|
|
83
|
+
- `@author` - Author information
|
|
84
|
+
- `@version` - Version information
|
|
85
|
+
|
|
86
|
+
### Advanced Tags
|
|
87
|
+
|
|
88
|
+
- `@namespace` - Namespace documentation
|
|
89
|
+
- `@class` - Class documentation
|
|
90
|
+
- `@module` - Module documentation
|
|
91
|
+
- `@async` - Async function marker
|
|
92
|
+
- `@static` - Static method marker
|
|
93
|
+
|
|
94
|
+
## Documentation Guidelines
|
|
95
|
+
|
|
96
|
+
1. **Use TypeScript-style type annotations**
|
|
97
|
+
2. **Provide clear parameter descriptions**
|
|
98
|
+
3. **Include realistic examples**
|
|
99
|
+
4. **Document all possible exceptions**
|
|
100
|
+
5. **Use @description for complex explanations**
|
|
101
|
+
6. **Mark optional parameters clearly**
|
|
102
|
+
7. **Include version information for new features**
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: template
|
|
3
|
+
title: Ruby YARD Documentation Template
|
|
4
|
+
purpose: Documentation for ace-docs/handbook/templates/code-docs/ruby-yard.template.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-01-08
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Ruby YARD Documentation Template
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
# [Brief description of what this method/class does]
|
|
14
|
+
#
|
|
15
|
+
# [Detailed description including purpose, behavior, and context.
|
|
16
|
+
# Explain what the method/class does, why it's useful, and how it fits
|
|
17
|
+
# into the larger system.]
|
|
18
|
+
#
|
|
19
|
+
# @example [Example title]
|
|
20
|
+
# [code example showing basic usage]
|
|
21
|
+
#
|
|
22
|
+
# @example [Another example title]
|
|
23
|
+
# [code example showing advanced usage or error handling]
|
|
24
|
+
#
|
|
25
|
+
# @param [parameter_name] [Type] [Description of parameter]
|
|
26
|
+
# @param [another_param] [Type] [Description with constraints/validation]
|
|
27
|
+
# @param [options] [Hash] [Description of options hash]
|
|
28
|
+
# @option options [Type] :option_name (default_value) [Description]
|
|
29
|
+
# @option options [Type] :another_option [Description]
|
|
30
|
+
#
|
|
31
|
+
# @return [ReturnType] [Description of what is returned]
|
|
32
|
+
#
|
|
33
|
+
# @raise [ExceptionClass] [Description of when this exception is raised]
|
|
34
|
+
# @raise [AnotherException] [Description of another exception condition]
|
|
35
|
+
#
|
|
36
|
+
# @note [Important note about usage, threading, performance, etc.]
|
|
37
|
+
# @note [Another important note]
|
|
38
|
+
#
|
|
39
|
+
# @see [RelatedClass]
|
|
40
|
+
# @see [RelatedMethod]
|
|
41
|
+
# @see [URL to external documentation]
|
|
42
|
+
#
|
|
43
|
+
# @since [version when this was added]
|
|
44
|
+
# @deprecated [version when deprecated] Use [alternative] instead
|
|
45
|
+
#
|
|
46
|
+
def method_name(parameter_name:, another_param:, **options)
|
|
47
|
+
# Implementation
|
|
48
|
+
end
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## YARD Tag Reference
|
|
52
|
+
|
|
53
|
+
### Basic Tags
|
|
54
|
+
|
|
55
|
+
- `@param` - Parameter documentation
|
|
56
|
+
- `@return` - Return value documentation
|
|
57
|
+
- `@raise` - Exception documentation
|
|
58
|
+
- `@example` - Code examples
|
|
59
|
+
- `@note` - Important notes
|
|
60
|
+
- `@see` - Cross-references
|
|
61
|
+
|
|
62
|
+
### Metadata Tags
|
|
63
|
+
|
|
64
|
+
- `@since` - Version when added
|
|
65
|
+
- `@deprecated` - Deprecation notice
|
|
66
|
+
- `@author` - Author information
|
|
67
|
+
- `@version` - Version information
|
|
68
|
+
|
|
69
|
+
### Advanced Tags
|
|
70
|
+
|
|
71
|
+
- `@option` - Hash option documentation
|
|
72
|
+
- `@overload` - Method overloads
|
|
73
|
+
- `@yield` - Block documentation
|
|
74
|
+
- `@yieldparam` - Block parameter documentation
|
|
75
|
+
- `@yieldreturn` - Block return documentation
|
|
76
|
+
|
|
77
|
+
## Documentation Guidelines
|
|
78
|
+
|
|
79
|
+
1. **Start with a brief one-line summary**
|
|
80
|
+
2. **Follow with detailed description if needed**
|
|
81
|
+
3. **Provide realistic examples**
|
|
82
|
+
4. **Document all parameters and return values**
|
|
83
|
+
5. **Include exception conditions**
|
|
84
|
+
6. **Add notes for important behavior**
|
|
85
|
+
7. **Use cross-references for related code**
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: template
|
|
3
|
+
title: Package README
|
|
4
|
+
purpose: Selling-page README template for ACE packages
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-23
|
|
7
|
+
last-checked: 2026-03-23
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
<div align="center">
|
|
11
|
+
<h1> ACE - {package-title} </h1>
|
|
12
|
+
|
|
13
|
+
{one-sentence tagline}
|
|
14
|
+
|
|
15
|
+
<img src="https://raw.githubusercontent.com/cs3b/ace/main/docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
|
|
16
|
+
<br><br>
|
|
17
|
+
|
|
18
|
+
<a href="https://rubygems.org/gems/{package-name}"><img alt="Gem Version" src="https://img.shields.io/gem/v/{package-name}.svg" /></a>
|
|
19
|
+
<a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
|
|
20
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
> Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
|
|
24
|
+
|
|
25
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
<!-- Nav row: pipe-separated links above the demo. Always use "Handbook - Skills, Agents, Templates"
|
|
29
|
+
as the expanded label so readers know what the handbook contains.
|
|
30
|
+
Place above the demo so readers find docs before scrolling. -->
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
<!-- Keep {package-title} as humanized package name, e.g. `ACE - Task` or `ACE - Test Runner E2E`. -->
|
|
35
|
+
<!-- If this package has no docs/ directory, use only:
|
|
36
|
+
Part of [ACE](https://github.com/cs3b/ace)
|
|
37
|
+
and do not add documentation links in the footer. -->
|
|
38
|
+
|
|
39
|
+
<!-- Include GIF for CLI tools. Omit for support libraries and integrations. -->
|
|
40
|
+
|
|
41
|
+
<!-- Intro paragraph: 2-4 sentences that describe the problem space and what the package
|
|
42
|
+
does about it. Do NOT list subcommands or features here — Use Cases covers those.
|
|
43
|
+
Weave the value proposition naturally instead of splitting into Problem/Solution.
|
|
44
|
+
IMPORTANT: Read the implementation code before describing features - do not write from plan notes. -->
|
|
45
|
+
|
|
46
|
+
## How It Works
|
|
47
|
+
|
|
48
|
+
<!-- Mermaid diagram OR 3-step numbered list.
|
|
49
|
+
Show the mental model, not the implementation.
|
|
50
|
+
Optional - include only when the mental model isn't obvious from Use Cases.
|
|
51
|
+
|
|
52
|
+
Example Mermaid (add as a fenced mermaid code block):
|
|
53
|
+
graph LR
|
|
54
|
+
A[Input] then B[Process] then C[Output]
|
|
55
|
+
Replace "then" with the Mermaid arrow syntax. -->
|
|
56
|
+
|
|
57
|
+
## Use Cases
|
|
58
|
+
|
|
59
|
+
<!-- Each entry: **bold title** - description paragraph.
|
|
60
|
+
Inline references:
|
|
61
|
+
- Skills: always use `/as-` prefix (e.g., `/as-task-draft`)
|
|
62
|
+
- CLI commands: link to usage docs (e.g., [`ace-task create`](docs/usage.md#ace-task-create-title))
|
|
63
|
+
- Ecosystem packages: link to sibling directories inline (e.g., [ace-overseer](../ace-overseer))
|
|
64
|
+
Write 3-6 use cases. Each should show a real workflow, not just name a feature.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
**Draft and structure work** - create a task, split it into subtasks, add new subtasks as work
|
|
68
|
+
reveals scope. Use `/as-task-draft` to draft from an earlier captured [idea](../ace-idea) or
|
|
69
|
+
short note, or [`ace-task create`](docs/usage.md#ace-task-create-title) from the CLI. -->
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: template
|
|
3
|
+
title: "[Project Name] - Architecture"
|
|
4
|
+
purpose: Documentation for ace-docs/handbook/templates/project-docs/architecture.template.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-01-08
|
|
7
|
+
last-checked: 2026-03-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# [Project Name] - Architecture
|
|
11
|
+
|
|
12
|
+
## Overview
|
|
13
|
+
|
|
14
|
+
<!-- High-level description of the system architecture -->
|
|
15
|
+
|
|
16
|
+
This document outlines the architectural design and technical implementation details for [Project Name]. It serves as a guide for developers and AI agents working on the project.
|
|
17
|
+
|
|
18
|
+
## Technology Stack
|
|
19
|
+
|
|
20
|
+
<!-- List the primary technologies, frameworks, and tools -->
|
|
21
|
+
|
|
22
|
+
### Core Technologies
|
|
23
|
+
|
|
24
|
+
- **Primary Language**: [e.g., JavaScript, Python, Rust, Ruby]
|
|
25
|
+
- **Runtime/Framework**: [e.g., Node.js, Django, Rails, Actix]
|
|
26
|
+
- **Database**: [e.g., PostgreSQL, MySQL, MongoDB, SQLite]
|
|
27
|
+
- **Package Manager**: [e.g., npm, pip, cargo, bundler]
|
|
28
|
+
|
|
29
|
+
### Development Tools
|
|
30
|
+
|
|
31
|
+
- **Build System**: [e.g., Webpack, Vite, Cargo, Make]
|
|
32
|
+
- **Testing Framework**: [e.g., Jest, PyTest, RSpec, Criterion]
|
|
33
|
+
- **Linting/Formatting**: [e.g., ESLint/Prettier, Black, RuboCop, rustfmt]
|
|
34
|
+
- **Type System**: [e.g., TypeScript, mypy, Sorbet, native]
|
|
35
|
+
|
|
36
|
+
### Infrastructure & Deployment
|
|
37
|
+
|
|
38
|
+
- **Containerization**: [e.g., Docker, Podman]
|
|
39
|
+
- **Cloud Platform**: [e.g., AWS, GCP, Azure, Heroku]
|
|
40
|
+
- **CI/CD**: [e.g., GitHub Actions, GitLab CI, Jenkins]
|
|
41
|
+
- **Monitoring**: [e.g., Sentry, DataDog, Prometheus]
|
|
42
|
+
|
|
43
|
+
## System Architecture
|
|
44
|
+
|
|
45
|
+
### High-Level Components
|
|
46
|
+
|
|
47
|
+
<!-- Describe the main components and their relationships -->
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
[Component Diagram - describe or link to actual diagram]
|
|
51
|
+
|
|
52
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
53
|
+
│ Frontend/UI │◄──►│ Backend/API │◄──►│ Database │
|
|
54
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
55
|
+
│
|
|
56
|
+
▼
|
|
57
|
+
┌─────────────────┐
|
|
58
|
+
│ External APIs/ │
|
|
59
|
+
│ Services │
|
|
60
|
+
└─────────────────┘
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Component Descriptions
|
|
64
|
+
|
|
65
|
+
#### [Component 1 - e.g., Frontend]
|
|
66
|
+
|
|
67
|
+
- **Purpose**: [What this component does]
|
|
68
|
+
- **Technology**: [Specific tech stack]
|
|
69
|
+
- **Key Responsibilities**:
|
|
70
|
+
- Responsibility 1
|
|
71
|
+
- Responsibility 2
|
|
72
|
+
- **Interfaces**: [How it communicates with other components]
|
|
73
|
+
|
|
74
|
+
#### [Component 2 - e.g., Backend API]
|
|
75
|
+
|
|
76
|
+
- **Purpose**: [What this component does]
|
|
77
|
+
- **Technology**: [Specific tech stack]
|
|
78
|
+
- **Key Responsibilities**:
|
|
79
|
+
- Responsibility 1
|
|
80
|
+
- Responsibility 2
|
|
81
|
+
- **Interfaces**: [How it communicates with other components]
|
|
82
|
+
|
|
83
|
+
#### [Component 3 - e.g., Database]
|
|
84
|
+
|
|
85
|
+
- **Purpose**: [What this component does]
|
|
86
|
+
- **Technology**: [Specific tech stack]
|
|
87
|
+
- **Schema**: [Brief description or link to schema docs]
|
|
88
|
+
|
|
89
|
+
## Data Flow
|
|
90
|
+
|
|
91
|
+
### Request Processing Flow
|
|
92
|
+
|
|
93
|
+
<!-- Describe how data flows through the system -->
|
|
94
|
+
|
|
95
|
+
1. **Input**: [How requests/data enters the system]
|
|
96
|
+
2. **Processing**: [How data is processed]
|
|
97
|
+
3. **Storage**: [How data is persisted]
|
|
98
|
+
4. **Output**: [How results are returned]
|
|
99
|
+
|
|
100
|
+
### Data Models
|
|
101
|
+
|
|
102
|
+
<!-- Key data structures and relationships -->
|
|
103
|
+
|
|
104
|
+
#### Core Entities
|
|
105
|
+
|
|
106
|
+
- **[Entity 1]**: [Description and key attributes]
|
|
107
|
+
- **[Entity 2]**: [Description and key attributes]
|
|
108
|
+
- **[Entity 3]**: [Description and key attributes]
|
|
109
|
+
|
|
110
|
+
## Command-line Tools (bin/)
|
|
111
|
+
|
|
112
|
+
The `bin/` directory provides convenient wrappers for project automation and development tasks.
|
|
113
|
+
|
|
114
|
+
### Development Scripts
|
|
115
|
+
|
|
116
|
+
- **bin/run** — Start the development server or main application
|
|
117
|
+
- **bin/build** — Build the project for production deployment
|
|
118
|
+
- **# Run project-specific test command** — Run the complete test suite
|
|
119
|
+
- **# Run project-specific lint command** — Run code quality checks and linting
|
|
120
|
+
|
|
121
|
+
### Project Management Scripts
|
|
122
|
+
|
|
123
|
+
- **task-manager next** — Find the next actionable task in the current release
|
|
124
|
+
- **task-manager recent** — Summarize recently updated or completed tasks
|
|
125
|
+
- **git-commit** — Commit changes across the project and submodules
|
|
126
|
+
- **git-log** — Show recent git commits across all repositories
|
|
127
|
+
|
|
128
|
+
### Utility Scripts
|
|
129
|
+
|
|
130
|
+
- **task-manager recentee** — Display the project directory structure
|
|
131
|
+
- **release-manager current** — Get current release path and version information
|
|
132
|
+
|
|
133
|
+
<!-- Add project-specific scripts -->
|
|
134
|
+
|
|
135
|
+
### Custom Scripts
|
|
136
|
+
|
|
137
|
+
- **bin/[custom-script]** — [Description of what this script does]
|
|
138
|
+
|
|
139
|
+
## File Organization
|
|
140
|
+
|
|
141
|
+
### Source Code Structure
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
src/
|
|
145
|
+
├── [main-module]/ # Core application logic
|
|
146
|
+
├── [feature-module]/ # Feature-specific code
|
|
147
|
+
├── utils/ # Shared utilities
|
|
148
|
+
├── config/ # Configuration management
|
|
149
|
+
├── types/ # Type definitions (if applicable)
|
|
150
|
+
└── [other-modules]/ # Additional modules
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Configuration Files
|
|
154
|
+
|
|
155
|
+
- **[config-file]**: [Purpose and key settings]
|
|
156
|
+
- **[env-file]**: [Environment-specific configurations]
|
|
157
|
+
- **[build-config]**: [Build and deployment settings]
|
|
158
|
+
|
|
159
|
+
## Development Patterns
|
|
160
|
+
|
|
161
|
+
### Code Organization Principles
|
|
162
|
+
|
|
163
|
+
<!-- Describe key patterns and conventions -->
|
|
164
|
+
|
|
165
|
+
- **[Pattern 1]**: [Description and usage]
|
|
166
|
+
- **[Pattern 2]**: [Description and usage]
|
|
167
|
+
- **[Pattern 3]**: [Description and usage]
|
|
168
|
+
|
|
169
|
+
### Error Handling
|
|
170
|
+
|
|
171
|
+
<!-- How errors are handled throughout the system -->
|
|
172
|
+
|
|
173
|
+
- **Error Types**: [Different categories of errors]
|
|
174
|
+
- **Error Propagation**: [How errors flow through the system]
|
|
175
|
+
- **Logging Strategy**: [How errors are logged and monitored]
|
|
176
|
+
|
|
177
|
+
## Security Considerations
|
|
178
|
+
|
|
179
|
+
### Authentication & Authorization
|
|
180
|
+
|
|
181
|
+
<!-- Security measures implemented -->
|
|
182
|
+
|
|
183
|
+
- **Authentication Method**: [How users are authenticated]
|
|
184
|
+
- **Authorization Model**: [How permissions are managed]
|
|
185
|
+
- **Session Management**: [How sessions are handled]
|
|
186
|
+
|
|
187
|
+
### Data Protection
|
|
188
|
+
|
|
189
|
+
- **Encryption**: [What data is encrypted and how]
|
|
190
|
+
- **Input Validation**: [How inputs are validated]
|
|
191
|
+
- **Security Headers**: [Security headers implemented]
|
|
192
|
+
|
|
193
|
+
## Performance Considerations
|
|
194
|
+
|
|
195
|
+
### Optimization Strategies
|
|
196
|
+
|
|
197
|
+
<!-- Performance optimization approaches -->
|
|
198
|
+
|
|
199
|
+
- **Caching**: [Caching strategies used]
|
|
200
|
+
- **Database Optimization**: [Query optimization, indexing]
|
|
201
|
+
- **Asset Optimization**: [How static assets are optimized]
|
|
202
|
+
|
|
203
|
+
### Monitoring & Metrics
|
|
204
|
+
|
|
205
|
+
- **Key Metrics**: [Important performance indicators]
|
|
206
|
+
- **Alerting**: [When and how alerts are triggered]
|
|
207
|
+
- **Profiling**: [Tools and strategies for performance profiling]
|
|
208
|
+
|
|
209
|
+
## Deployment Architecture
|
|
210
|
+
|
|
211
|
+
### Environment Strategy
|
|
212
|
+
|
|
213
|
+
<!-- Different deployment environments -->
|
|
214
|
+
|
|
215
|
+
- **Development**: [Local development setup]
|
|
216
|
+
- **Staging**: [Staging environment configuration]
|
|
217
|
+
- **Production**: [Production environment details]
|
|
218
|
+
|
|
219
|
+
### Deployment Process
|
|
220
|
+
|
|
221
|
+
1. **Build**: [How the application is built]
|
|
222
|
+
2. **Test**: [Testing in deployment pipeline]
|
|
223
|
+
3. **Deploy**: [Deployment steps and strategies]
|
|
224
|
+
4. **Monitor**: [Post-deployment monitoring]
|
|
225
|
+
|
|
226
|
+
## Extension Points
|
|
227
|
+
|
|
228
|
+
### Adding New Features
|
|
229
|
+
|
|
230
|
+
<!-- How to extend the system -->
|
|
231
|
+
|
|
232
|
+
- **[Extension Point 1]**: [How to add functionality here]
|
|
233
|
+
- **[Extension Point 2]**: [How to add functionality here]
|
|
234
|
+
|
|
235
|
+
### Plugin Architecture
|
|
236
|
+
|
|
237
|
+
<!-- If applicable, describe plugin/module system -->
|
|
238
|
+
|
|
239
|
+
- **Plugin Interface**: [How plugins integrate]
|
|
240
|
+
- **Plugin Discovery**: [How plugins are found and loaded]
|
|
241
|
+
|
|
242
|
+
## Dependencies
|
|
243
|
+
|
|
244
|
+
### Runtime Dependencies
|
|
245
|
+
|
|
246
|
+
<!-- Key libraries and their purposes -->
|
|
247
|
+
|
|
248
|
+
- **[Library 1]** (v[version]): [Purpose and why it was chosen]
|
|
249
|
+
- **[Library 2]** (v[version]): [Purpose and why it was chosen]
|
|
250
|
+
|
|
251
|
+
### Development Dependencies
|
|
252
|
+
|
|
253
|
+
- **[Dev Tool 1]**: [Purpose in development workflow]
|
|
254
|
+
- **[Dev Tool 2]**: [Purpose in development workflow]
|
|
255
|
+
|
|
256
|
+
## Decision Records
|
|
257
|
+
|
|
258
|
+
### Significant Architectural Decisions
|
|
259
|
+
|
|
260
|
+
<!-- Link to or summarize key architectural decisions -->
|
|
261
|
+
|
|
262
|
+
- **[Decision 1]**: [Brief summary and rationale]
|
|
263
|
+
- **[Decision 2]**: [Brief summary and rationale]
|
|
264
|
+
|
|
265
|
+
For detailed decision records, see [docs/decisions/](docs/decisions/).
|
|
266
|
+
|
|
267
|
+
## Troubleshooting
|
|
268
|
+
|
|
269
|
+
### Common Issues
|
|
270
|
+
|
|
271
|
+
<!-- Common problems and their solutions -->
|
|
272
|
+
|
|
273
|
+
**Issue**: [Problem description]
|
|
274
|
+
|
|
275
|
+
- **Symptoms**: [How to identify this issue]
|
|
276
|
+
- **Solution**: [How to resolve it]
|
|
277
|
+
|
|
278
|
+
**Issue**: [Problem description]
|
|
279
|
+
|
|
280
|
+
- **Symptoms**: [How to identify this issue]
|
|
281
|
+
- **Solution**: [How to resolve it]
|
|
282
|
+
|
|
283
|
+
## Future Considerations
|
|
284
|
+
|
|
285
|
+
### Planned Improvements
|
|
286
|
+
|
|
287
|
+
<!-- Architectural improvements planned for future releases -->
|
|
288
|
+
|
|
289
|
+
- **[Improvement 1]**: [Description and timeline]
|
|
290
|
+
- **[Improvement 2]**: [Description and timeline]
|
|
291
|
+
|
|
292
|
+
### Scalability Roadmap
|
|
293
|
+
|
|
294
|
+
- **Short-term**: [Immediate scalability plans]
|
|
295
|
+
- **Medium-term**: [6-12 month scalability goals]
|
|
296
|
+
- **Long-term**: [Future architectural evolution]
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
*This architecture document should be updated when significant changes are made to the system design or technology stack.*
|