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
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Michal Czyz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1> ACE - Docs </h1>
|
|
3
|
+
|
|
4
|
+
Keep documentation current by tracking freshness, detecting drift, and generating actionable updates.
|
|
5
|
+
|
|
6
|
+
<img src="https://raw.githubusercontent.com/cs3b/ace/main/docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
|
|
7
|
+
<br><br>
|
|
8
|
+
|
|
9
|
+
<a href="https://rubygems.org/gems/ace-docs"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-docs.svg" /></a>
|
|
10
|
+
<a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
|
|
11
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
> Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
|
|
16
|
+
|
|
17
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md)
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
`ace-docs` provides a practical maintenance loop for teams that need package docs to stay aligned with fast-moving code and workflow changes. It uses frontmatter-based freshness tracking, targeted change analysis, and LLM-assisted update guidance to keep documentation in sync.
|
|
22
|
+
|
|
23
|
+
## How It Works
|
|
24
|
+
|
|
25
|
+
1. **Track freshness** — `ace-docs status` scans markdown files for frontmatter metadata and reports which documents are current, stale, or outdated based on git history.
|
|
26
|
+
2. **Analyze drift** — `ace-docs analyze FILE` compares a document against code changes since its last update and produces LLM-assisted revision guidance.
|
|
27
|
+
3. **Validate consistency** — `ace-docs analyze-consistency` checks terminology, duplicates, and version mismatches across a documentation set before release.
|
|
28
|
+
|
|
29
|
+
## Use Cases
|
|
30
|
+
|
|
31
|
+
**Prioritize documentation updates based on real drift** - identify which files are stale, what changed since last update, and where to focus first using [`ace-docs`](docs/usage.md) freshness tracking.
|
|
32
|
+
|
|
33
|
+
**Generate targeted update guidance for specific documents** - run LLM-assisted analysis with [ace-bundle](../ace-bundle) and [ace-llm](../ace-llm) context to propose concrete doc revisions.
|
|
34
|
+
|
|
35
|
+
**Catch cross-document inconsistencies before release** - validate metadata and compare documents to find conflicts across package documentation sets before publishing.
|
|
36
|
+
|
|
37
|
+
**Enforce docs quality in release loops** - pair with [ace-lint](../ace-lint) for markdown checks and use `ace-docs` update workflows to keep guides, READMEs, and references in sync.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
[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)
|
data/Rakefile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
require "minitest/test_task"
|
|
5
|
+
|
|
6
|
+
desc "Run tests using ace-test"
|
|
7
|
+
task :test do
|
|
8
|
+
sh "ace-test"
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
desc "Run tests directly (CI mode)"
|
|
12
|
+
Minitest::TestTask.create(:ci)
|
|
13
|
+
|
|
14
|
+
task default: :test
|
data/exe/ace-docs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require_relative "../lib/ace/docs"
|
|
5
|
+
require "ace/support/cli"
|
|
6
|
+
|
|
7
|
+
args = ARGV.empty? ? ["--help"] : ARGV
|
|
8
|
+
|
|
9
|
+
begin
|
|
10
|
+
Ace::Support::Cli::Runner.new(Ace::Docs::CLI).call(args: args)
|
|
11
|
+
rescue Ace::Support::Cli::Error => e
|
|
12
|
+
warn e.message
|
|
13
|
+
exit(e.exit_code)
|
|
14
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Ruby Documentation Examples
|
|
2
|
+
|
|
3
|
+
This file provides Ruby-specific examples related to the main [Documentation Standards Guide](../documentation.g.md).
|
|
4
|
+
|
|
5
|
+
* **Tools:** RDoc, YARD
|
|
6
|
+
* **Conventions:** [Add relevant Ruby documentation conventions here]
|
|
7
|
+
|
|
8
|
+
```ruby
|
|
9
|
+
# Example Ruby documentation comment (YARD)
|
|
10
|
+
# @param name [String] The name of the user
|
|
11
|
+
# @return [User] The newly created user object
|
|
12
|
+
# @raise [ArgumentError] If the name is invalid
|
|
13
|
+
def create_user(name)
|
|
14
|
+
# ... implementation ...
|
|
15
|
+
end
|
|
16
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Rust Documentation Examples
|
|
2
|
+
|
|
3
|
+
This file provides Rust-specific examples related to the main [Documentation Standards Guide](../documentation.g.md).
|
|
4
|
+
|
|
5
|
+
* **Tools:** `cargo doc`, `rustdoc`
|
|
6
|
+
* **Conventions:** Markdown within `///` or `//!` comments.
|
|
7
|
+
|
|
8
|
+
```rust
|
|
9
|
+
/// Creates a new user.
|
|
10
|
+
///
|
|
11
|
+
/// # Arguments
|
|
12
|
+
///
|
|
13
|
+
/// * `name` - A string slice that holds the name of the user.
|
|
14
|
+
///
|
|
15
|
+
/// # Returns
|
|
16
|
+
///
|
|
17
|
+
/// A `User` object.
|
|
18
|
+
///
|
|
19
|
+
/// # Errors
|
|
20
|
+
///
|
|
21
|
+
/// Returns an error if the name is invalid.
|
|
22
|
+
///
|
|
23
|
+
/// # Examples
|
|
24
|
+
///
|
|
25
|
+
/// ```
|
|
26
|
+
/// let user = create_user("Alice").unwrap();
|
|
27
|
+
/// ```
|
|
28
|
+
pub fn create_user(name: &str) -> Result<User, Error> {
|
|
29
|
+
// ... implementation ...
|
|
30
|
+
unimplemented!() // Placeholder
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
struct User { /* ... */ }
|
|
34
|
+
struct Error { /* ... */ }
|
|
35
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# TypeScript Documentation Examples
|
|
2
|
+
|
|
3
|
+
This file provides TypeScript-specific examples related to the main [Documentation Standards Guide](../documentation.g.md).
|
|
4
|
+
|
|
5
|
+
* **Tools:** JSDoc (with TypeScript syntax), TypeDoc
|
|
6
|
+
* **Conventions:** [Add relevant TypeScript documentation conventions here]
|
|
7
|
+
|
|
8
|
+
```typescript
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new user.
|
|
11
|
+
* @param name The name of the user.
|
|
12
|
+
* @returns The newly created user object.
|
|
13
|
+
* @throws {Error} If the name is invalid.
|
|
14
|
+
*/
|
|
15
|
+
function createUser(name: string): User {
|
|
16
|
+
// ... implementation ...
|
|
17
|
+
}
|
|
18
|
+
```
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: guide
|
|
3
|
+
title: Goal
|
|
4
|
+
purpose: Documentation for ace-docs/handbook/guides/documentation.g.md
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-23
|
|
7
|
+
last-checked: 2026-03-23
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Goal
|
|
11
|
+
|
|
12
|
+
This guide defines the standards and best practices for documenting code and project artifacts within this
|
|
13
|
+
toolkit, ensuring clarity, maintainability, and effective knowledge sharing for both human developers and
|
|
14
|
+
AI agents.
|
|
15
|
+
|
|
16
|
+
## 1. Code Documentation
|
|
17
|
+
|
|
18
|
+
1. **API Documentation (using standard tools/conventions)**:
|
|
19
|
+
Use standard documentation tools and conventions for your language/framework to document public APIs (classes,
|
|
20
|
+
methods, modules, functions).
|
|
21
|
+
- Include a clear summary of the item's purpose.
|
|
22
|
+
- Document parameters (`@param name [Type] description`).
|
|
23
|
+
- Document return values (`@return [Type] description`).
|
|
24
|
+
- Provide clear usage examples (`@example`).
|
|
25
|
+
- Note any exceptions or errors raised (`@raise [ErrorType] description`).
|
|
26
|
+
- Indicate important notes like thread-safety (`@note`).
|
|
27
|
+
|
|
28
|
+
```javascript
|
|
29
|
+
// Example API documentation structure (adapt to your language/tool)
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @summary Executes an AI agent task with given tools.
|
|
33
|
+
*
|
|
34
|
+
* @param {object} task - The task configuration.
|
|
35
|
+
* @param {string} task.prompt - The task prompt.
|
|
36
|
+
* @param {string[]} task.tools - Available tools.
|
|
37
|
+
* @returns {Result} Task execution result.
|
|
38
|
+
* @throws {ConfigError} If configuration is invalid.
|
|
39
|
+
* @throws {ToolError} If a tool fails during execution.
|
|
40
|
+
* @note This method is thread-safe.
|
|
41
|
+
*/
|
|
42
|
+
function execute(task) {
|
|
43
|
+
// Implementation
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
1. **Class and Module Documentation**:
|
|
48
|
+
Document the purpose and usage of classes, modules, or other major code structures.
|
|
49
|
+
- Include examples of instantiation or typical usage.
|
|
50
|
+
- Note important characteristics like thread-safety if applicable.
|
|
51
|
+
|
|
52
|
+
```javascript
|
|
53
|
+
// Example class documentation structure (adapt to your language)
|
|
54
|
+
/**
|
|
55
|
+
* @summary Manages the registration and lookup of agent tools.
|
|
56
|
+
*
|
|
57
|
+
* @example Registering a custom tool
|
|
58
|
+
* const registry = new ToolRegistry();
|
|
59
|
+
* registry.register('browser', new BrowserTool());
|
|
60
|
+
*
|
|
61
|
+
* @thread-safety This class is thread-safe.
|
|
62
|
+
*/
|
|
63
|
+
class ToolRegistry {
|
|
64
|
+
/** @property {Map<string, Tool>} tools - The registered tools */
|
|
65
|
+
get tools() { /* ... */ }
|
|
66
|
+
|
|
67
|
+
/** @private */
|
|
68
|
+
constructor() {
|
|
69
|
+
// ...
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
1. **Performance Documentation**:
|
|
75
|
+
Document performance-critical sections of code.
|
|
76
|
+
- Note algorithmic complexity (e.g., `@complexity O(n)`).
|
|
77
|
+
- Specify performance characteristics (e.g., `@performance Processes up to X items concurrently`).
|
|
78
|
+
- Indicate expected memory usage (e.g., `@memory Uses ~Y MB per item`).
|
|
79
|
+
|
|
80
|
+
```javascript
|
|
81
|
+
// Example performance documentation (adapt as needed)
|
|
82
|
+
/**
|
|
83
|
+
* Processes items in parallel with controlled concurrency.
|
|
84
|
+
*
|
|
85
|
+
* @complexity O(n) where n is the number of items.
|
|
86
|
+
* @performance Processes up to 10 items concurrently.
|
|
87
|
+
* @memory Uses ~10MB per item being processed.
|
|
88
|
+
*/
|
|
89
|
+
function processItems(items) {
|
|
90
|
+
// Implementation
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 2. Project Documentation Structure
|
|
95
|
+
|
|
96
|
+
This section clarifies the purpose and scope of each major documentation file. Following these guidelines helps maintain consistency and prevents content duplication.
|
|
97
|
+
|
|
98
|
+
#### Core Documentation Files
|
|
99
|
+
|
|
100
|
+
##### README.md (Package)
|
|
101
|
+
|
|
102
|
+
**Purpose**: Selling page - quickly convey what the package is and why it matters
|
|
103
|
+
|
|
104
|
+
A README is the first thing someone sees. Lead with value, not feature lists.
|
|
105
|
+
|
|
106
|
+
**Structure** (in order):
|
|
107
|
+
|
|
108
|
+
| Section | Purpose | Length |
|
|
109
|
+
|---------|---------|--------|
|
|
110
|
+
| Title + logo | Identity with ACE branding | Title + centered logo block |
|
|
111
|
+
| Badges | Status indicators | 3 badges: gem version, Ruby 3.2+, MIT license |
|
|
112
|
+
| Tagline | What it IS (blockquote) | `> one sentence` |
|
|
113
|
+
| Agent compatibility | Trust signal | "Works with: ..." 1 line |
|
|
114
|
+
| Nav row | Quick access to docs | Pipe-separated links, above demo |
|
|
115
|
+
| GIF | Visual hook | CLI tools only |
|
|
116
|
+
| Intro paragraph | Value proposition in context | 2-4 sentences |
|
|
117
|
+
| How It Works | Mental model | Optional - Mermaid diagram or 3-step list |
|
|
118
|
+
| Use Cases | Real workflows with tool refs | 3-6 entries |
|
|
119
|
+
| Footer | ACE link | 1 line separator |
|
|
120
|
+
|
|
121
|
+
**Logo**: Place a centered logo block (`<p align="center">`) between title and badges.
|
|
122
|
+
Use the standard ACE logo path: `../docs/brand/AgenticCodingEnvironment.Logo.S.png`.
|
|
123
|
+
|
|
124
|
+
**Nav row**: Pipe-separated links placed above the demo GIF, not in a bottom section.
|
|
125
|
+
Always use three links: Getting Started, Usage Guide, and Handbook. Expand the Handbook
|
|
126
|
+
link with a subtitle: `[Handbook - Skills, Agents, Templates](docs/handbook.md)` so
|
|
127
|
+
readers know what it contains without clicking.
|
|
128
|
+
|
|
129
|
+
**No Quick Start section**: Getting Started is linked in the nav row. A separate Quick
|
|
130
|
+
Start section duplicates it. Remove it.
|
|
131
|
+
|
|
132
|
+
**Intro paragraph**: 2-4 sentences that describe the problem space and what the package
|
|
133
|
+
does about it. Do not split into separate Problem/Solution sections. Do not list
|
|
134
|
+
subcommands or features — let Use Cases do that. Frame through what the package enables,
|
|
135
|
+
not what it replaces.
|
|
136
|
+
|
|
137
|
+
**Use Cases** (replaces Problem/Solution/Ecosystem/Agent Skills):
|
|
138
|
+
|
|
139
|
+
Each entry: **bold title** followed by a description paragraph. Weave in:
|
|
140
|
+
- Skill references with `/as-` prefix (e.g., `/as-task-draft`)
|
|
141
|
+
- CLI commands linked to usage docs (e.g., [`ace-task create`](docs/usage.md#ace-task-create-title))
|
|
142
|
+
- Ecosystem package links inline (e.g., [ace-overseer](../ace-overseer))
|
|
143
|
+
|
|
144
|
+
This replaces separate Ecosystem and Agent Skills sections. Related packages and skills
|
|
145
|
+
appear naturally within the use cases where they add value.
|
|
146
|
+
|
|
147
|
+
Additional Use Cases rules:
|
|
148
|
+
- CLI examples in code blocks should include all meaningful flags (e.g., `--preset`)
|
|
149
|
+
- Do not repeat in prose what a nearby code block already shows
|
|
150
|
+
- When describing customization, link config files and presets in other packages
|
|
151
|
+
using relative paths (e.g., `[preset](../ace-assign/.ace-defaults/assign/presets/work-on-task.yml)`)
|
|
152
|
+
|
|
153
|
+
**Badges**: Use shields.io. Always use these 3: gem version, Ruby 3.2+ (with logo),
|
|
154
|
+
MIT license. Do not add CI, coverage, downloads, or social badges.
|
|
155
|
+
|
|
156
|
+
**Tagline**: Use a blockquote (`> one sentence`). The `>` creates a visual box on
|
|
157
|
+
GitHub that draws the eye to the selling line. Place immediately after badges.
|
|
158
|
+
|
|
159
|
+
**Agent compatibility line**: Place below the tagline, above the nav row. Use the
|
|
160
|
+
standard text: "Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent,
|
|
161
|
+
and more." Keep the agent list current as new agents gain traction.
|
|
162
|
+
|
|
163
|
+
**Implementation rule**: Read the implementation code before describing features. Do not
|
|
164
|
+
write from plan notes or spec documents alone.
|
|
165
|
+
|
|
166
|
+
**Package category variants**:
|
|
167
|
+
|
|
168
|
+
| Section | CLI Tool | Support Library | Integration | Infrastructure |
|
|
169
|
+
|---------|----------|-----------------|-------------|----------------|
|
|
170
|
+
| Logo | Yes | Yes | Yes | Yes |
|
|
171
|
+
| GIF | Yes | No | No | If available |
|
|
172
|
+
| How It Works | Optional | Optional | Skip | Optional |
|
|
173
|
+
| Use Cases | 4-6 entries | 2-4 entries | 2-3 entries | 3-5 entries |
|
|
174
|
+
|
|
175
|
+
**Root README differs**: The monorepo root uses "What ACE Does" (value bullets) and
|
|
176
|
+
a "Tools" table instead of Use Cases. In `ace-docs` classification this file uses
|
|
177
|
+
`doc-type: root_readme` (not package `readme`). See the root README for the pattern.
|
|
178
|
+
|
|
179
|
+
**Anti-patterns** (never include in a README):
|
|
180
|
+
|
|
181
|
+
- Full API documentation (belongs in docs/)
|
|
182
|
+
- Development setup (belongs in docs/SETUP.md)
|
|
183
|
+
- Contributing guidelines beyond a link (belongs in docs/contributing/)
|
|
184
|
+
- Separate Problem/Solution sections (weave into intro paragraph)
|
|
185
|
+
- Separate Ecosystem or Agent Skills sections (inline in Use Cases)
|
|
186
|
+
- Quick Start section (redundant with Getting Started in nav row)
|
|
187
|
+
- Feature bullet lists without workflow context
|
|
188
|
+
- More than 3 badges
|
|
189
|
+
- Decorative emojis (follow markdown-style guide)
|
|
190
|
+
- Describing features from plan notes without reading implementation code
|
|
191
|
+
|
|
192
|
+
**Template**: `ace-docs/handbook/templates/project-docs/README.template.md`
|
|
193
|
+
|
|
194
|
+
##### docs/vision.md
|
|
195
|
+
|
|
196
|
+
**Purpose**: Product vision and business context
|
|
197
|
+
|
|
198
|
+
**Contains**:
|
|
199
|
+
|
|
200
|
+
- Product vision statement
|
|
201
|
+
- Key features and capabilities (business perspective)
|
|
202
|
+
- User personas and their needs
|
|
203
|
+
- Use cases and scenarios
|
|
204
|
+
- Success metrics
|
|
205
|
+
- Value proposition
|
|
206
|
+
- Future vision (product roadmap perspective)
|
|
207
|
+
- Market positioning
|
|
208
|
+
|
|
209
|
+
**Does NOT contain**:
|
|
210
|
+
|
|
211
|
+
- Technical implementation details
|
|
212
|
+
- Code structure or patterns
|
|
213
|
+
- Development workflows
|
|
214
|
+
- Directory structures
|
|
215
|
+
- Dependencies lists
|
|
216
|
+
|
|
217
|
+
##### docs/architecture.md
|
|
218
|
+
|
|
219
|
+
**Purpose**: Technical design and implementation details
|
|
220
|
+
|
|
221
|
+
**Contains**:
|
|
222
|
+
|
|
223
|
+
- System architecture overview
|
|
224
|
+
- Technology stack with justifications
|
|
225
|
+
- ATOM architecture pattern details (or your pattern)
|
|
226
|
+
- Component descriptions and interactions
|
|
227
|
+
- Data flow diagrams
|
|
228
|
+
- File organization (technical perspective)
|
|
229
|
+
- Development patterns and principles
|
|
230
|
+
- Security and performance considerations
|
|
231
|
+
- Technical dependencies with versions
|
|
232
|
+
- Decision records references
|
|
233
|
+
|
|
234
|
+
**Does NOT contain**:
|
|
235
|
+
|
|
236
|
+
- Business goals or user personas
|
|
237
|
+
- Installation instructions
|
|
238
|
+
- Navigation guides for developers
|
|
239
|
+
- Task management information
|
|
240
|
+
|
|
241
|
+
##### docs/blueprint.md
|
|
242
|
+
|
|
243
|
+
**Purpose**: Project navigation guide (especially for AI agents)
|
|
244
|
+
|
|
245
|
+
**Contains**:
|
|
246
|
+
|
|
247
|
+
- Brief description of what a blueprint is
|
|
248
|
+
- Links to core documents (what-we-build, architecture)
|
|
249
|
+
- Project organization (directory structure)
|
|
250
|
+
- Key file locations and purposes
|
|
251
|
+
- Technology stack summary (with link to architecture for details)
|
|
252
|
+
- Entry points and common workflows
|
|
253
|
+
- Read-only and ignored paths for AI agents
|
|
254
|
+
- Quick reference commands
|
|
255
|
+
|
|
256
|
+
**Does NOT contain**:
|
|
257
|
+
|
|
258
|
+
- Detailed technical explanations
|
|
259
|
+
- Business vision or goals
|
|
260
|
+
- Implementation patterns
|
|
261
|
+
- Comprehensive dependency analysis
|
|
262
|
+
|
|
263
|
+
##### docs/SETUP.md
|
|
264
|
+
|
|
265
|
+
**Purpose**: Development environment setup
|
|
266
|
+
|
|
267
|
+
**Contains**:
|
|
268
|
+
|
|
269
|
+
- System requirements
|
|
270
|
+
- Installation prerequisites
|
|
271
|
+
- Step-by-step setup instructions
|
|
272
|
+
- Environment configuration
|
|
273
|
+
- Dependency installation
|
|
274
|
+
- Verification steps
|
|
275
|
+
- Common setup issues and solutions
|
|
276
|
+
|
|
277
|
+
**Does NOT contain**:
|
|
278
|
+
|
|
279
|
+
- Development workflows
|
|
280
|
+
- Architecture details
|
|
281
|
+
- Testing strategies
|
|
282
|
+
- Contributing guidelines
|
|
283
|
+
|
|
284
|
+
##### docs/DEVELOPMENT.md
|
|
285
|
+
|
|
286
|
+
**Purpose**: Development workflow and practices
|
|
287
|
+
|
|
288
|
+
**Contains**:
|
|
289
|
+
|
|
290
|
+
- Daily development workflow
|
|
291
|
+
- Testing strategies and examples
|
|
292
|
+
- Build system commands
|
|
293
|
+
- Code quality standards
|
|
294
|
+
- Debugging techniques
|
|
295
|
+
- Performance optimization tips
|
|
296
|
+
- Release workflow
|
|
297
|
+
- Links to specialized guides (e.g., VCR testing)
|
|
298
|
+
|
|
299
|
+
**Does NOT contain**:
|
|
300
|
+
|
|
301
|
+
- Initial setup instructions
|
|
302
|
+
- Product vision
|
|
303
|
+
- Architecture decisions
|
|
304
|
+
- Basic usage examples
|
|
305
|
+
|
|
306
|
+
##### dev-taskflow/roadmap.md
|
|
307
|
+
|
|
308
|
+
**Purpose**: Strategic planning and release management
|
|
309
|
+
|
|
310
|
+
**Contains**:
|
|
311
|
+
|
|
312
|
+
- Project vision summary
|
|
313
|
+
- Strategic objectives with metrics
|
|
314
|
+
- Release timeline and milestones
|
|
315
|
+
- Major features by release
|
|
316
|
+
- Cross-release dependencies
|
|
317
|
+
- Update history
|
|
318
|
+
|
|
319
|
+
**Does NOT contain**:
|
|
320
|
+
|
|
321
|
+
- Technical implementation details
|
|
322
|
+
- Current task lists
|
|
323
|
+
- Development setup instructions
|
|
324
|
+
- Architecture patterns
|
|
325
|
+
|
|
326
|
+
#### Specialized Documentation
|
|
327
|
+
|
|
328
|
+
##### docs/llm-integration/
|
|
329
|
+
|
|
330
|
+
**Purpose**: Feature-specific user guides
|
|
331
|
+
|
|
332
|
+
**Example**: `gemini-query-guide.md`
|
|
333
|
+
|
|
334
|
+
- Comprehensive usage instructions
|
|
335
|
+
- Configuration options
|
|
336
|
+
- Examples and use cases
|
|
337
|
+
- Troubleshooting
|
|
338
|
+
- Integration patterns
|
|
339
|
+
|
|
340
|
+
##### docs/architecture-decisions/
|
|
341
|
+
|
|
342
|
+
**Purpose**: Architecture Decision Records (ADRs)
|
|
343
|
+
|
|
344
|
+
**Contains**:
|
|
345
|
+
|
|
346
|
+
- Technical decisions with context
|
|
347
|
+
- Alternatives considered
|
|
348
|
+
- Consequences and trade-offs
|
|
349
|
+
- Decision rationale
|
|
350
|
+
|
|
351
|
+
#### Content Placement Quick Reference
|
|
352
|
+
|
|
353
|
+
| Content Type | Primary Location | Secondary References OK |
|
|
354
|
+
|-------------|------------------|------------------------|
|
|
355
|
+
| Product vision | vision.md | README (brief), roadmap |
|
|
356
|
+
| User personas | vision.md | - |
|
|
357
|
+
| Installation | README, SETUP.md | - |
|
|
358
|
+
| Usage examples | README (basic), docs/examples/ | - |
|
|
359
|
+
| Directory structure | blueprint.md | architecture.md (technical) |
|
|
360
|
+
| ATOM pattern details | architecture.md | blueprint.md (navigation) |
|
|
361
|
+
| Dependencies | architecture.md (detailed) | blueprint.md (summary) |
|
|
362
|
+
| Development workflow | DEVELOPMENT.md | - |
|
|
363
|
+
| API documentation | Feature guides | architecture.md (design) |
|
|
364
|
+
|
|
365
|
+
#### Guidelines for New Documentation
|
|
366
|
+
|
|
367
|
+
1. **Check existing documents first** - Don't create new files if the content belongs in an existing document
|
|
368
|
+
2. **Link, don't duplicate** - Reference other documents rather than copying content
|
|
369
|
+
3. **Keep scope focused** - Each document should have a clear, single purpose
|
|
370
|
+
4. **Update the blueprint** - When adding new key documents, update blueprint.md
|
|
371
|
+
5. **Consider the audience** - Technical details for developers, business context for stakeholders
|
|
372
|
+
6. **Maintain consistency** - Follow the established patterns in each document type
|
|
373
|
+
|
|
374
|
+
#### Cross-Reference Patterns
|
|
375
|
+
|
|
376
|
+
##### When to Link
|
|
377
|
+
|
|
378
|
+
- From README to detailed guides
|
|
379
|
+
- From blueprint to all major documents
|
|
380
|
+
- From overview documents to detailed implementations
|
|
381
|
+
- From guides to related ADRs
|
|
382
|
+
|
|
383
|
+
##### How to Link
|
|
384
|
+
|
|
385
|
+
- Use relative paths from the document location
|
|
386
|
+
- Include section anchors for specific topics
|
|
387
|
+
- Verify links work after moving documents
|
|
388
|
+
- Update links when reorganizing
|
|
389
|
+
|
|
390
|
+
### 3. Documenting for AI Collaboration
|
|
391
|
+
|
|
392
|
+
Clear documentation is crucial for effective AI collaboration.
|
|
393
|
+
|
|
394
|
+
- **Task Definitions:** Use the structured `.md` format for tasks (see `guide://project-management`)
|
|
395
|
+
with clear descriptions, implementation notes, and acceptance criteria.
|
|
396
|
+
- **Workflow Instructions:** Write clear, specific workflow instructions (workflow instructions (`wfi://` protocol))
|
|
397
|
+
outlining processes for the AI to follow for common tasks. Follow guidelines similar to writing good code:
|
|
398
|
+
focused, clear inputs/outputs, examples. (See Task 04 for creating a dedicated guide on this).
|
|
399
|
+
- **Cross-Referencing:** Link related documents (guides, tasks, ADRs, code files) to create a connected
|
|
400
|
+
knowledge base that the AI can potentially navigate or be guided through. For example, a task file might link
|
|
401
|
+
to a relevant ADR or guide section using root-relative paths like `docs/architecture-decisions/ADR-001.md` or
|
|
402
|
+
`guide://coding-standards`.
|
|
403
|
+
|
|
404
|
+
## Code Comments
|
|
405
|
+
|
|
406
|
+
Code comments should explain the *why*, not the *what* (unless the *what* is particularly complex or
|
|
407
|
+
non-obvious). Well-written code should be largely self-documenting regarding *what* it does.
|
|
408
|
+
|
|
409
|
+
**Good Comment (Explains Why):**
|
|
410
|
+
|
|
411
|
+
```javascript
|
|
412
|
+
// Reset the counter due to edge case X discovered during testing.
|
|
413
|
+
counter = 0;
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
**Bad Comment (Explains What):**
|
|
417
|
+
|
|
418
|
+
```javascript
|
|
419
|
+
// Increment the counter by one.
|
|
420
|
+
counter++;
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
## Language/Environment-Specific Examples
|
|
424
|
+
|
|
425
|
+
For specific examples of documentation generation tools, comment styles, or conventions tailored to particular
|
|
426
|
+
languages or frameworks (e.g., JSDoc, RDoc, Sphinx, JavaDoc), please refer to the examples in the
|
|
427
|
+
[./documentation/](./documentation/) sub-directory.
|
|
428
|
+
|
|
429
|
+
## Formatting Conventions
|
|
430
|
+
|
|
431
|
+
For markdown typography and formatting standards (em-dashes, file trees, emoji usage), see the [Markdown Style Guide](guide://markdown-style).
|
|
432
|
+
|
|
433
|
+
## Related Documentation
|
|
434
|
+
|
|
435
|
+
- [Coding Standards](guide://coding-standards)
|
|
436
|
+
- [Project Management Guide](guide://project-management) (Task format, ADRs)
|
|
437
|
+
- [ADR Template](tmpl://project-docs/adr)
|