Add structured docs/ directory and copilot instructions for documentation maintenance#7208
Add structured docs/ directory and copilot instructions for documentation maintenance#7208
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a structured root-level docs/ directory (concepts/guides/reference/architecture) plus Copilot documentation-maintenance instructions, and wires the new docs index from the root README to improve contributor navigation.
Changes:
- Introduces a new
docs/README.mdindex and a set of new concept/guide/reference/architecture documents. - Adds
.github/instructions/documentation.instructions.mdto guide agents/contributors on when/where to update documentation. - Updates root
README.mdto link contributors to the newdocs/directory.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/reference/feature-status.md | Adds a feature maturity reference table for commands/languages/hosts/etc. |
| docs/reference/environment-variables.md | Adds a consolidated environment variable reference (high-level) with pointer to implementation docs. |
| docs/reference/azure-yaml-schema.md | Adds a high-level azure.yaml schema overview and links to the machine-readable schema. |
| docs/guides/observability.md | Adds contributor guidance for tracing/telemetry and links to detailed docs. |
| docs/guides/creating-an-extension.md | Adds a step-by-step extension authoring guide and links to detailed docs. |
| docs/guides/contributing.md | Adds a contributor workflow guide (build/test/lint/checklist). |
| docs/guides/adding-a-new-command.md | Documents the ActionDescriptor pattern and command registration workflow. |
| docs/concepts/glossary.md | Adds a glossary of key terms used in the codebase. |
| docs/concepts/feature-stages.md | Defines alpha/beta/stable stages and links to feature status. |
| docs/concepts/alpha-features.md | Documents enabling/discovering alpha features and pointers to implementation details. |
| docs/architecture/system-overview.md | Adds a high-level architecture overview and directory map. |
| docs/architecture/provisioning-pipeline.md | Documents the provisioning pipeline and links to deeper design docs. |
| docs/architecture/extension-framework.md | Documents gRPC extension architecture and capabilities. |
| docs/architecture/command-execution-model.md | Documents command registration/build/middleware/action execution model. |
| docs/architecture/adr-template.md | Adds an ADR template for future architecture decisions. |
| docs/README.md | Adds the new docs landing page and “where do new docs go?” routing table. |
| README.md | Adds link to docs/README.md for contributor documentation. |
| .github/instructions/documentation.instructions.md | Adds Copilot instructions for ongoing documentation maintenance. |
You can also share your feedback on Copilot code review. Take the survey.
| | Variable | Description | | ||
| |---|---| | ||
| | `AZD_ALPHA_ENABLE_<NAME>` | Enable a specific alpha feature (e.g., `AZD_ALPHA_ENABLE_UPDATE=true`) | |
| | Property | Type | Description | | ||
| |---|---|---| | ||
| | `name` | string | **Required.** Project name used for resource naming | |
| - **Line length:** 125 characters max (enforced by `lll` linter) | ||
| - **Formatting:** Standard Go formatting via `gofmt` | ||
| - **Security:** `gosec` checks for common security issues | ||
| - **Error handling:** `errorlint` enforces correct `errors.Is`/`errors.As`/`errors.AsType` usage |
README.md
Outdated
| ## 🤖 AI Agents | ||
|
|
||
| **Contributing to this repo?** See [AGENTS.md](cli/azd/AGENTS.md) for coding standards and guidelines. | ||
| **Contributing to this repo?** See [AGENTS.md](cli/azd/AGENTS.md) for coding standards and [docs/](docs/README.md) for contributor documentation. |
docs/guides/observability.md
Outdated
| Then pass the endpoint to any command: | ||
|
|
||
| ```bash | ||
| azd provision --trace-log-url localhost |
Create docs/ at repo root with concepts/, guides/, reference/, and architecture/ subdirectories. Add initial documentation covering: - Glossary, feature stages, alpha features (concepts) - Contributing, adding commands, creating extensions, observability (guides) - Environment variables, azure.yaml schema, feature status (reference) - System overview, command execution, extension framework, provisioning (architecture) - ADR template for future architecture decision records Add .github/instructions/documentation.instructions.md with copilot instructions to keep docs up to date when codebase changes. Update root README.md to link to the new docs/ directory. Co-authored-by: spboyer <7681382+spboyer@users.noreply.github.com>
Co-authored-by: spboyer <7681382+spboyer@users.noreply.github.com>
- Add cspell overrides for technical terms in docs/ markdown files - Fix Jaeger OTLP endpoint to use explicit http://localhost:4318 - Update AGENTS.md link in README.md to root (symlink) - Verified errors.AsType is valid (Go 1.26, used in 10+ files) - Verified table syntax is correct (no || issues found) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
d8c42fe to
212d209
Compare
| ```text | ||
| docs/ | ||
| ├── README.md — Documentation index and navigation | ||
| ├── concepts/ — Core mental models, terminology, feature lifecycle | ||
| ├── guides/ — Task-oriented how-tos for contributors | ||
| ├── reference/ — Schemas, flags, environment variables, feature status | ||
| └── architecture/ — System overviews, design context, ADRs | ||
| ``` |
There was a problem hiding this comment.
IIRC, we don't use a docs folder in the repo b/c there might be more than one product in the repo.
Are you hoping to move the docs for everything there?
We currently have /ext (for VSCode extension, gh-devcontainer, azdo-extension) and cli/azd for the cli+1st party extensions.
We might need to partition the folder into docs/<product>/README.md . But my preference would be to keep each's product docs within its own folder.
We currently have both a CLI and a go-library (for extensions) within cli/azd, and we also have .vscode folder inside cli/azd (as it was better to only open that folder for contributing to azd in the past, when the todo-templates were there).
I would consider a docs folder on the root to be some static-docs web which is published to the gh-pages of the repo, which is the common way to find public repos hosting their own docs. Did you consider that option?
Repository documentation is scattered across
cli/azd/docs/,AGENTS.md, and various READMEs with no consistent organization by purpose. Contributors and agents have no clear routing for where to find or place documentation.New
docs/structure at repo rootdocs/concepts/— Glossary, feature stages, alpha featuresdocs/guides/— Contributing, adding commands, creating extensions, observabilitydocs/reference/— Environment variables, azure.yaml schema, feature status tabledocs/architecture/— System overview, command execution model, extension framework, provisioning pipeline, ADR templatedocs/README.mdserves as the index with a placement guide:docs/concepts/glossary.mddocs/guides/docs/reference/docs/architecture/cli/azd/docs/design/Copilot instructions
Added
.github/instructions/documentation.instructions.md— tells Copilot when and where to update docs as code changes (new env vars, feature stage changes, new capabilities, etc.).Design choices
cli/azd/docs/rather than copying contentdocs/architecture/adr-template.mdprovides a lightweight template for future decision records⌨️ Start Copilot coding agent tasks without leaving your editor — available in VS Code, Visual Studio, JetBrains IDEs and Eclipse.