aegis-sdlc 0.1.1__tar.gz
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.
- aegis_sdlc-0.1.1/.gitignore +29 -0
- aegis_sdlc-0.1.1/CHANGELOG.md +116 -0
- aegis_sdlc-0.1.1/LICENSE +21 -0
- aegis_sdlc-0.1.1/PKG-INFO +73 -0
- aegis_sdlc-0.1.1/README.md +132 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/adr.template.md +53 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/architecture-decisions-index.template.md +24 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/data-architecture.template.md +61 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/deployment-topology.template.md +77 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/executive-briefing.template.md +45 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/functional-requirements.template.md +36 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/interface-specifications.template.md +53 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/non-functional-requirements.template.md +38 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/observability-strategy.template.md +59 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/product-requirements.template.md +54 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/security-architecture.template.md +77 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/system-blueprint.template.md +50 -0
- aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/user-journey-map.template.md +45 -0
- aegis_sdlc-0.1.1/aegis/skills/implementation-management/assets/templates/decision.template.md +23 -0
- aegis_sdlc-0.1.1/aegis/skills/implementation-management/assets/templates/implementation.template.md +50 -0
- aegis_sdlc-0.1.1/aegis/skills/implementation-management/assets/templates/work-package.template.md +57 -0
- aegis_sdlc-0.1.1/docs/package-readme.md +39 -0
- aegis_sdlc-0.1.1/pyproject.toml +88 -0
- aegis_sdlc-0.1.1/src/artifact_tools/__init__.py +14 -0
- aegis_sdlc-0.1.1/src/artifact_tools/__main__.py +429 -0
- aegis_sdlc-0.1.1/src/artifact_tools/adr.py +358 -0
- aegis_sdlc-0.1.1/src/artifact_tools/changelog.py +81 -0
- aegis_sdlc-0.1.1/src/artifact_tools/constants.py +152 -0
- aegis_sdlc-0.1.1/src/artifact_tools/diagrams.py +216 -0
- aegis_sdlc-0.1.1/src/artifact_tools/frontmatter.py +90 -0
- aegis_sdlc-0.1.1/src/artifact_tools/guard.py +232 -0
- aegis_sdlc-0.1.1/src/artifact_tools/implementation.py +966 -0
- aegis_sdlc-0.1.1/src/artifact_tools/interfaces.py +153 -0
- aegis_sdlc-0.1.1/src/artifact_tools/issues.py +30 -0
- aegis_sdlc-0.1.1/src/artifact_tools/readiness.py +113 -0
- aegis_sdlc-0.1.1/src/artifact_tools/scaffold.py +69 -0
- aegis_sdlc-0.1.1/src/artifact_tools/validate.py +314 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
*.egg-info/
|
|
6
|
+
build/
|
|
7
|
+
dist/
|
|
8
|
+
.venv/
|
|
9
|
+
venv/
|
|
10
|
+
|
|
11
|
+
# Artifact documents (not tracked)
|
|
12
|
+
# Each application lives in its own subfolder: docs/artifacts/<app-name>/...
|
|
13
|
+
# The whole per-app tree is generated by the agents and is not version-controlled.
|
|
14
|
+
docs/artifacts/*/
|
|
15
|
+
# Keep the multi-application index/router that lists the apps.
|
|
16
|
+
!docs/artifacts/README.md
|
|
17
|
+
|
|
18
|
+
# Node / mermaid-cli (mmdc) diagram-rendering artifacts
|
|
19
|
+
node_modules/
|
|
20
|
+
puppeteer-config.json
|
|
21
|
+
.vscode/mcp.json
|
|
22
|
+
|
|
23
|
+
# Claude Code: local MCP config (copy from .mcp.example.json) and personal settings
|
|
24
|
+
.mcp.json
|
|
25
|
+
.claude/settings.local.json
|
|
26
|
+
CLAUDE.local.md
|
|
27
|
+
|
|
28
|
+
# Local-only denylist of private terms (see scripts/ci/denylist.txt)
|
|
29
|
+
.denylist.local
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented here. The format follows
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses
|
|
5
|
+
[Semantic Versioning](https://semver.org/spec/v2.0.0.html). Until 1.0.0, minor versions
|
|
6
|
+
may include breaking changes; they are listed under **Changed**.
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.1.1] - 2026-09-24
|
|
11
|
+
|
|
12
|
+
The first release on PyPI (`pip install aegis-sdlc`), and the Claude Code plugin.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- The CLI is packaged for PyPI as `aegis-sdlc` (the `artifact-tools` command and the
|
|
17
|
+
`artifact_tools` module keep their names). Publishing a GitHub release publishes the
|
|
18
|
+
package through Trusted Publishing. CI builds the package and runs the installed CLI
|
|
19
|
+
outside the repository.
|
|
20
|
+
- **Claude Code plugin (preview).** Install AEGIS into your own repository with
|
|
21
|
+
`/plugin marketplace add nishant-tamilselvan/AEGIS` and `/plugin install aegis@aegis`.
|
|
22
|
+
Commands are namespaced (`/aegis:start-ideation`), a `SessionStart` hook loads the
|
|
23
|
+
golden rules and checks for the `aegis-sdlc` CLI, and the guard runs against your
|
|
24
|
+
repository. The plugin is generated from `aegis/` and validated in CI with
|
|
25
|
+
`claude plugin validate --strict`. See
|
|
26
|
+
[docs/claude-code-plugin.md](docs/claude-code-plugin.md).
|
|
27
|
+
- The guard recognizes namespaced plugin agents (`aegis:service-implementer`) as
|
|
28
|
+
implementers.
|
|
29
|
+
- Both hook scripts accept `--repo-root`, so they can run from a plugin folder against
|
|
30
|
+
the user's repository. An empty or missing `--repo-root` value is treated as a guard
|
|
31
|
+
failure: implementers are denied and other calls need approval.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- `check_readiness` moved from `artifact_tools.implementation` to
|
|
36
|
+
`artifact_tools.readiness`, and `Issue` and `has_errors` moved to
|
|
37
|
+
`artifact_tools.issues` (`artifact_tools.validate` still re-exports them). This removes
|
|
38
|
+
the import cycles between the validators. The CLI is unchanged.
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- When the implementation target is the same repository that holds `docs/artifacts/`,
|
|
43
|
+
the guard no longer blocks `artifact-manager` and other non-implementation agents from
|
|
44
|
+
writing artifacts. Implementers are still denied there, and code writes still require
|
|
45
|
+
the active package's implementer.
|
|
46
|
+
- An installed CLI used outside an AEGIS clone could not find its templates. The wheel
|
|
47
|
+
now bundles them; a repository's own templates still take precedence.
|
|
48
|
+
|
|
49
|
+
## [0.1.0] - 2026-09-24
|
|
50
|
+
|
|
51
|
+
First public, organization-neutral release, for GitHub Copilot and Claude Code.
|
|
52
|
+
|
|
53
|
+
### Added
|
|
54
|
+
|
|
55
|
+
- Three-phase agent system (ideation, architecture and implementation) with 18 agents,
|
|
56
|
+
10 prompts and 4 skills, for two agent hosts:
|
|
57
|
+
- **GitHub Copilot in VS Code:** custom agents, prompt files and skills in `.github/`,
|
|
58
|
+
with hooks in `.github/hooks/`.
|
|
59
|
+
- **Claude Code:** the 15 specialists as subagents (`.claude/agents/`), the 10 prompts as
|
|
60
|
+
slash-command skills that run the orchestrators in the main conversation
|
|
61
|
+
(`.claude/skills/`), hooks in `.claude/settings.json`, and `CLAUDE.md`. See
|
|
62
|
+
[docs/claude-code.md](docs/claude-code.md).
|
|
63
|
+
- One source for both hosts: agents, prompts, skills and golden rules live in `aegis/`.
|
|
64
|
+
`scripts/sync_platforms.py` generates the Copilot and Claude Code files, and CI and
|
|
65
|
+
pre-commit fail when they drift.
|
|
66
|
+
- `artifact_tools` CLI to scaffold, validate and maintain artifacts, ADRs, interface
|
|
67
|
+
contracts, diagrams and phase-3 implementation state.
|
|
68
|
+
- Implementation guard (`PreToolUse`) and automatic validation (`PostToolUse`) hooks,
|
|
69
|
+
shared by both hosts. The guard recognizes Copilot agent names and Claude Code subagents
|
|
70
|
+
(`agent_type`). The validation hook returns feedback as `systemMessage` for Copilot and
|
|
71
|
+
`additionalContext` for Claude Code (`--platform claude`).
|
|
72
|
+
- A worked example, [`examples/artifacts/todo-list/`](examples/artifacts/): a complete,
|
|
73
|
+
approved phase 1 and phase 2 artifact set for a simple to-do app, with an OpenAPI 3.1
|
|
74
|
+
contract and two ADRs. CI keeps it passing strict validation and the readiness gate.
|
|
75
|
+
- Enterprise Standards integration: the `enterprise-standards` skill, a reference MCP
|
|
76
|
+
server with a sample knowledge base, MCP templates for both hosts
|
|
77
|
+
(`.vscode/mcp.example.json`, `.mcp.example.json`) and a setup guide.
|
|
78
|
+
- Repository checks for personal paths, denylisted terms, invisible Unicode, workflow
|
|
79
|
+
security and broken links.
|
|
80
|
+
- CI on Windows, macOS and Linux with SHA-pinned actions, a secret scan, Dependabot and
|
|
81
|
+
pre-commit hooks.
|
|
82
|
+
- CodeQL code scanning (Python and GitHub Actions) and OpenSSF Scorecard workflows.
|
|
83
|
+
- Community files: security policy, contributing guide, Code of Conduct, issue forms and
|
|
84
|
+
a pull request template.
|
|
85
|
+
- Golden rules that treat external content as data and forbid copying secrets into
|
|
86
|
+
artifacts.
|
|
87
|
+
|
|
88
|
+
### Changed
|
|
89
|
+
|
|
90
|
+
- The organization-specific playbook integration is now the generic Enterprise
|
|
91
|
+
Standards library (`enterprise-standards-server`).
|
|
92
|
+
- The `--playbook-review` CLI option and the `playbook_review` pointer field are renamed to
|
|
93
|
+
`--standards-review` and `standards_review`.
|
|
94
|
+
- The CLI reads templates from `aegis/skills/` instead of `.github/skills/`.
|
|
95
|
+
- Implementation readiness accepts `CLAUDE.md` as a target repository's conventions file.
|
|
96
|
+
|
|
97
|
+
### Security
|
|
98
|
+
|
|
99
|
+
- The implementation guard hook never fails open. An agent host lets a tool call proceed
|
|
100
|
+
when its hook crashes, so on any failure the wrapper denies implementation agents and
|
|
101
|
+
asks you about every other call. Deny reasons also go to stderr, where Claude Code reads
|
|
102
|
+
them.
|
|
103
|
+
- Only the active work package's implementation agent may write to the target
|
|
104
|
+
repository. Writes there from orchestrators, reviewers or the Claude Code main
|
|
105
|
+
conversation are denied with a reminder to delegate.
|
|
106
|
+
|
|
107
|
+
### Fixed
|
|
108
|
+
|
|
109
|
+
- Writing implementation state no longer fails intermittently on Windows when another
|
|
110
|
+
process briefly holds the file open. The atomic rename now retries.
|
|
111
|
+
- The CLI writes LF line endings on every platform. On Windows, scaffolded artifacts,
|
|
112
|
+
ADRs, changelog entries and contract stubs were written with CRLF.
|
|
113
|
+
|
|
114
|
+
[Unreleased]: https://github.com/nishant-tamilselvan/AEGIS/compare/v0.1.1...HEAD
|
|
115
|
+
[0.1.1]: https://github.com/nishant-tamilselvan/AEGIS/compare/v0.1.0...v0.1.1
|
|
116
|
+
[0.1.0]: https://github.com/nishant-tamilselvan/AEGIS/releases/tag/v0.1.0
|
aegis_sdlc-0.1.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 NISHANT TAMILSELVAN
|
|
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.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: aegis-sdlc
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: CLI for AEGIS: scaffold, validate and track requirements, architecture artifacts, ADRs and implementation work packages.
|
|
5
|
+
Project-URL: Homepage, https://github.com/nishant-tamilselvan/AEGIS
|
|
6
|
+
Project-URL: Documentation, https://github.com/nishant-tamilselvan/AEGIS/tree/main/docs
|
|
7
|
+
Project-URL: Issues, https://github.com/nishant-tamilselvan/AEGIS/issues
|
|
8
|
+
Project-URL: Changelog, https://github.com/nishant-tamilselvan/AEGIS/blob/main/CHANGELOG.md
|
|
9
|
+
Author: Nishant Tamilselvan
|
|
10
|
+
License: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: adr,ai-agents,architecture,claude-code,github-copilot,mcp,requirements,sdlc
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
24
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Requires-Dist: pyyaml>=6.0
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: pre-commit>=4.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: ruff>=0.16; extra == 'dev'
|
|
31
|
+
Provides-Extra: diagrams
|
|
32
|
+
Requires-Dist: mermaidx>=0.8; extra == 'diagrams'
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
|
|
35
|
+
# aegis-sdlc
|
|
36
|
+
|
|
37
|
+
The command-line tool behind [AEGIS](https://github.com/nishant-tamilselvan/AEGIS), a set
|
|
38
|
+
of agents for GitHub Copilot and Claude Code that turn an idea into approved
|
|
39
|
+
requirements, an implementable architecture and reviewed code.
|
|
40
|
+
|
|
41
|
+
The agents call this CLI to keep their documents consistent. You can also use it on its
|
|
42
|
+
own, for example in CI, to scaffold and validate AEGIS artifacts.
|
|
43
|
+
|
|
44
|
+
## Install
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pip install aegis-sdlc
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
This installs the `artifact-tools` command. Python 3.10 or later is required.
|
|
51
|
+
|
|
52
|
+
## Use
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
artifact-tools scaffold product-requirements docs/artifacts/my-app --project "My App"
|
|
56
|
+
artifact-tools validate docs/artifacts/my-app --strict
|
|
57
|
+
artifact-tools adr new "Use PostgreSQL" docs/artifacts/my-app/architecture-decisions --status accepted
|
|
58
|
+
artifact-tools implementation readiness docs/artifacts/my-app /path/to/target-repo
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The artifact and implementation templates are bundled with the package. Inside a
|
|
62
|
+
repository that has its own `aegis/skills/.../templates` folders, those are used instead,
|
|
63
|
+
so customized templates keep working.
|
|
64
|
+
|
|
65
|
+
## Learn more
|
|
66
|
+
|
|
67
|
+
- [AEGIS on GitHub](https://github.com/nishant-tamilselvan/AEGIS): the agents, prompts
|
|
68
|
+
and skills for GitHub Copilot and Claude Code.
|
|
69
|
+
- [CLI reference](https://github.com/nishant-tamilselvan/AEGIS/blob/main/docs/cli-reference.md)
|
|
70
|
+
- [A complete example](https://github.com/nishant-tamilselvan/AEGIS/tree/main/examples/artifacts)
|
|
71
|
+
- [Changelog](https://github.com/nishant-tamilselvan/AEGIS/blob/main/CHANGELOG.md)
|
|
72
|
+
|
|
73
|
+
MIT licensed.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/aegis-logo.svg" alt="AEGIS" width="360" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>Agentic Enterprise Guided Intelligent System</strong><br />
|
|
7
|
+
From a one-line idea to approved requirements, an implementable architecture and reviewed code, inside VS Code or Claude Code.
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<a href="https://github.com/nishant-tamilselvan/AEGIS/actions/workflows/ci.yml"><img src="https://github.com/nishant-tamilselvan/AEGIS/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /></a>
|
|
12
|
+
<a href="https://github.com/nishant-tamilselvan/AEGIS/actions/workflows/codeql.yml"><img src="https://github.com/nishant-tamilselvan/AEGIS/actions/workflows/codeql.yml/badge.svg?branch=main" alt="CodeQL" /></a>
|
|
13
|
+
<a href="https://scorecard.dev/viewer/?uri=github.com/nishant-tamilselvan/AEGIS"><img src="https://api.scorecard.dev/projects/github.com/nishant-tamilselvan/AEGIS/badge" alt="OpenSSF Scorecard" /></a>
|
|
14
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT license" /></a>
|
|
15
|
+
<img src="https://img.shields.io/badge/python-3.10%2B-3776AB?logo=python&logoColor=white" alt="Python 3.10+" />
|
|
16
|
+
<img src="https://img.shields.io/badge/VS%20Code-Copilot%20agents-007ACC?logo=visualstudiocode&logoColor=white" alt="VS Code Copilot agents" />
|
|
17
|
+
<img src="https://img.shields.io/badge/Claude%20Code-subagents%20%2B%20skills-D97757?logo=claude&logoColor=white" alt="Claude Code subagents and skills" />
|
|
18
|
+
<img src="https://img.shields.io/badge/MCP-Enterprise%20Standards-6E56CF" alt="MCP Enterprise Standards" />
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="docs/getting-started.md">Getting started</a> ·
|
|
23
|
+
<a href="docs/claude-code.md">Claude Code</a> ·
|
|
24
|
+
<a href="docs/how-it-works.md">How it works</a> ·
|
|
25
|
+
<a href="docs/agents.md">Agents</a> ·
|
|
26
|
+
<a href="docs/cli-reference.md">CLI</a> ·
|
|
27
|
+
<a href="docs/enterprise-standards-setup.md">Enterprise Standards</a> ·
|
|
28
|
+
<a href="docs/troubleshooting.md">Troubleshooting</a>
|
|
29
|
+
</p>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
AEGIS is a set of agents, prompts and skills for GitHub Copilot in VS Code and for Claude
|
|
34
|
+
Code, backed by a Python tool layer. Orchestrator agents guide you one small step at a time. Specialist agents write
|
|
35
|
+
and maintain a set of living documents. The tooling validates those documents after every
|
|
36
|
+
change, so requirements, architecture and code stay consistent.
|
|
37
|
+
|
|
38
|
+
## Why AEGIS
|
|
39
|
+
|
|
40
|
+
- **One step at a time.** Orchestrators ask a few focused questions, recap and wait for you.
|
|
41
|
+
You never get a 40-question form.
|
|
42
|
+
- **Documents that stay consistent.** Every artifact uses a fixed template and stable ids.
|
|
43
|
+
Validation runs after each edit, and a critic agent fixes what it finds.
|
|
44
|
+
- **Grounded in your standards.** Agents check your organization's Enterprise Standards
|
|
45
|
+
first, cite them, and ask only about what they leave open.
|
|
46
|
+
- **Bounded, reviewed implementation.** Code is written one approved work package at a time,
|
|
47
|
+
inside declared paths, and completes only with an independent review and recorded evidence.
|
|
48
|
+
- **No automatic deployment.** Release needs a named human approver.
|
|
49
|
+
|
|
50
|
+
## Quick start
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
git clone https://github.com/nishant-tamilselvan/AEGIS.git && cd AEGIS
|
|
54
|
+
pip install -e .
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then open it in your agent host:
|
|
58
|
+
|
|
59
|
+
| GitHub Copilot | Claude Code |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| Open the folder in VS Code and switch Copilot Chat to Agent mode. | Run `claude` in the folder. See [Using AEGIS with Claude Code](docs/claude-code.md). Or install AEGIS into your own repository [as a plugin](docs/claude-code-plugin.md) (preview). |
|
|
62
|
+
|
|
63
|
+
Start with the same command on either platform:
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
/start-ideation customer-portal A self-service portal where customers track orders
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
When ideation is done, continue with `/start-architecture customer-portal`, then
|
|
70
|
+
`/start-implementation customer-portal <absolute-path-to-target-repo>`.
|
|
71
|
+
The [getting started guide](docs/getting-started.md) walks through each phase.
|
|
72
|
+
|
|
73
|
+
## How it works
|
|
74
|
+
|
|
75
|
+
```mermaid
|
|
76
|
+
flowchart LR
|
|
77
|
+
U[Raw idea] --> P1[1. Ideation<br/>6 business artifacts]
|
|
78
|
+
P1 --> P2[2. Architecture<br/>5 technical artifacts + ADRs]
|
|
79
|
+
P2 --> G{Readiness gate}
|
|
80
|
+
G -- blocked --> P2
|
|
81
|
+
G -- ready --> P3[3. Implementation<br/>bounded work packages]
|
|
82
|
+
P3 --> R[Independent review<br/>+ evidence]
|
|
83
|
+
R --> H[Human release approval]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
| Phase | You get |
|
|
87
|
+
| --- | --- |
|
|
88
|
+
| **Ideation** | Product, functional and non-functional requirements, a user journey map, a system blueprint and an executive briefing. |
|
|
89
|
+
| **Architecture** | Interface specifications with native contracts, data, security, deployment and observability architecture, and ADRs. |
|
|
90
|
+
| **Implementation** | Work packages traced to the artifacts, a decision ledger, and reviewed code in your target repository. |
|
|
91
|
+
|
|
92
|
+
Artifacts live in `docs/artifacts/<app-name>/`, one folder per application. See
|
|
93
|
+
[how it works](docs/how-it-works.md) for the artifacts, ids and guarantees, or browse a
|
|
94
|
+
**[complete example for a simple to-do app](examples/artifacts/)**: every phase 1 and
|
|
95
|
+
phase 2 artifact, an OpenAPI contract and two ADRs, all approved and ready for
|
|
96
|
+
implementation.
|
|
97
|
+
|
|
98
|
+
## What's inside
|
|
99
|
+
|
|
100
|
+
| | |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| **18 agents** | 3 orchestrators and 15 specialists across the three phases. [Catalog](docs/agents.md). |
|
|
103
|
+
| **10 prompts** | Slash commands to start, resume, review and change each phase. [List](docs/agents.md#prompts). |
|
|
104
|
+
| **2 platforms, 1 source** | Everything is written once in `aegis/` and generated for GitHub Copilot (`.github/`) and Claude Code (`.claude/`). |
|
|
105
|
+
| **4 skills** | Artifact, ADR and implementation management, and Enterprise Standards grounding. |
|
|
106
|
+
| **2 hooks** | A guard before implementation tool calls, and validation after every edit, on both platforms. |
|
|
107
|
+
| **`artifact_tools` CLI** | Scaffold, validate, ADRs, contracts, diagrams and implementation state. [Reference](docs/cli-reference.md). |
|
|
108
|
+
| **Reference MCP server** | Serves your standards from Markdown files. [Setup](docs/enterprise-standards-setup.md). |
|
|
109
|
+
|
|
110
|
+
## Enterprise Standards
|
|
111
|
+
|
|
112
|
+
Connect your organization's standards, policies, patterns and enterprise decisions through
|
|
113
|
+
a read-only MCP server named `enterprise-standards-server`. You can run the included
|
|
114
|
+
[reference server](examples/enterprise-standards-server/) on a folder of Markdown files, put
|
|
115
|
+
your own server in front of an existing system, or run without one. The
|
|
116
|
+
[setup guide](docs/enterprise-standards-setup.md) covers each option.
|
|
117
|
+
|
|
118
|
+
## Security
|
|
119
|
+
|
|
120
|
+
The implementation guard is a safeguard, not a sandbox. Review what agents change before
|
|
121
|
+
you merge it, and treat standards content as untrusted input. Report vulnerabilities
|
|
122
|
+
privately. See [SECURITY.md](SECURITY.md).
|
|
123
|
+
|
|
124
|
+
## Contributing
|
|
125
|
+
|
|
126
|
+
Contributions are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for the setup, the
|
|
127
|
+
checks CI runs and a checklist for each kind of component. This project follows the
|
|
128
|
+
[Code of Conduct](CODE_OF_CONDUCT.md). Changes are recorded in the [changelog](CHANGELOG.md).
|
|
129
|
+
|
|
130
|
+
## License
|
|
131
|
+
|
|
132
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: {{ADR_ID}}
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
status: {{STATUS}}
|
|
5
|
+
date: "{{DATE}}"
|
|
6
|
+
component: "{{COMPONENT}}"
|
|
7
|
+
supersedes: "{{SUPERSEDES}}"
|
|
8
|
+
superseded_by: "{{SUPERSEDED_BY}}"
|
|
9
|
+
deciders: "{{DECIDERS}}"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# {{ADR_ID}}: {{TITLE}}
|
|
13
|
+
|
|
14
|
+
- **Status:** {{STATUS}}
|
|
15
|
+
- **Date:** {{DATE}}
|
|
16
|
+
- **Component/Domain:** {{COMPONENT}}
|
|
17
|
+
- **Deciders:** {{DECIDERS}}
|
|
18
|
+
- **Supersedes:** {{SUPERSEDES}}
|
|
19
|
+
- **Superseded by:** {{SUPERSEDED_BY}}
|
|
20
|
+
|
|
21
|
+
## Context
|
|
22
|
+
|
|
23
|
+
_What is the issue that motivates this decision? Reference the driving requirements
|
|
24
|
+
(`FR-*`, `NFR-*`) or components (`BP-*`) so the decision stays traceable._
|
|
25
|
+
|
|
26
|
+
## Decision Drivers
|
|
27
|
+
|
|
28
|
+
- _..._
|
|
29
|
+
- _..._
|
|
30
|
+
|
|
31
|
+
## Considered Alternatives
|
|
32
|
+
|
|
33
|
+
1. **_Option A_** — _pros / cons._
|
|
34
|
+
2. **_Option B_** — _pros / cons._
|
|
35
|
+
3. **_Option C_** — _pros / cons._
|
|
36
|
+
|
|
37
|
+
## Decision
|
|
38
|
+
|
|
39
|
+
_The choice we are making, stated plainly._
|
|
40
|
+
|
|
41
|
+
## Consequences
|
|
42
|
+
|
|
43
|
+
### Positive
|
|
44
|
+
|
|
45
|
+
- _..._
|
|
46
|
+
|
|
47
|
+
### Negative / Trade-offs
|
|
48
|
+
|
|
49
|
+
- _..._
|
|
50
|
+
|
|
51
|
+
## Links
|
|
52
|
+
|
|
53
|
+
- _Related ADRs, requirements, or external references._
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Architecture Decision Records (ADRs)
|
|
2
|
+
|
|
3
|
+
This index tracks every critical architectural decision for the platform. It is the
|
|
4
|
+
semantic-routing entry point: filter by **Status** to avoid stale decisions and by
|
|
5
|
+
**Component** to narrow a search before opening a record.
|
|
6
|
+
|
|
7
|
+
- **Status** values: `proposed`, `accepted`, `rejected`, `deprecated`, `superseded`.
|
|
8
|
+
- A `superseded` row must name its replacement in the **Consequences** column and set
|
|
9
|
+
`superseded_by` in its own frontmatter.
|
|
10
|
+
- Records are immutable except for status transitions and back-links. Never renumber.
|
|
11
|
+
|
|
12
|
+
| ID | Title | Date | Status | Component | Consequences | File |
|
|
13
|
+
|------|-------|------|--------|-----------|--------------|------|
|
|
14
|
+
| ADR-0001 | Record architecture decisions | {{DATE}} | accepted | Governance | Establishes the Nygard/MADR template for all future decisions. | [0001-adr-template.md](0001-adr-template.md) |
|
|
15
|
+
|
|
16
|
+
## How to add a decision
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
python -m artifact_tools adr new "Event-driven topology" --status accepted --component "Core Topology"
|
|
20
|
+
# Supersede an earlier decision:
|
|
21
|
+
python -m artifact_tools adr new "Migrate catalogue to PostgreSQL" --supersedes ADR-0003
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The tool auto-numbers the record, fills the template, and appends the row above.
|
aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/data-architecture.template.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: data-architecture
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
version: "0.1"
|
|
5
|
+
status: draft
|
|
6
|
+
last_updated: "{{DATE}}"
|
|
7
|
+
phase: 2
|
|
8
|
+
owner: artifact-manager
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Data Architecture — {{PROJECT_NAME}}
|
|
12
|
+
|
|
13
|
+
> How data is structured, owned and governed. Entities use the `DM-` prefix and
|
|
14
|
+
> `implements` the functional requirements (`FR-*`) whose data they hold. Proposed by
|
|
15
|
+
> `data-architect`, written by `artifact-manager`.
|
|
16
|
+
|
|
17
|
+
## Legend
|
|
18
|
+
|
|
19
|
+
- **Store**: `relational` | `document` | `key-value` | `object` | `cache` | `search`
|
|
20
|
+
- **Classification**: `public` | `internal` | `confidential` | `pii` | `pci`
|
|
21
|
+
- **Status**: `draft` | `in-review` | `approved` | `removed`
|
|
22
|
+
|
|
23
|
+
## 1. Logical Data Model (ERD)
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
erDiagram
|
|
27
|
+
ENTITY_A ||--o{ ENTITY_B : has
|
|
28
|
+
ENTITY_A {
|
|
29
|
+
uuid id PK
|
|
30
|
+
string name
|
|
31
|
+
}
|
|
32
|
+
ENTITY_B {
|
|
33
|
+
uuid id PK
|
|
34
|
+
uuid entity_a_id FK
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 2. Entities
|
|
39
|
+
|
|
40
|
+
| ID | Entity | Store | Classification | implements | Status |
|
|
41
|
+
|------|--------|-------|----------------|------------|--------|
|
|
42
|
+
| DM-001 | _..._ | relational | internal | FR-001 | draft |
|
|
43
|
+
|
|
44
|
+
## 3. Physical Design Notes
|
|
45
|
+
|
|
46
|
+
_Primary keys, indexing strategy, partitioning/sharding, and referential integrity._
|
|
47
|
+
|
|
48
|
+
## 4. Data Retention & Purging
|
|
49
|
+
|
|
50
|
+
| Data domain | Retention period | Purge mechanism | Driver (NFR/regulation) |
|
|
51
|
+
|-------------|------------------|-----------------|-------------------------|
|
|
52
|
+
| _..._ | _..._ | _..._ | NFR-001 |
|
|
53
|
+
|
|
54
|
+
## 5. Data Sovereignty & Residency
|
|
55
|
+
|
|
56
|
+
_Where data must physically reside (e.g. Canada-only regions) and why._
|
|
57
|
+
|
|
58
|
+
## Changelog
|
|
59
|
+
|
|
60
|
+
<!-- artifact_tools changelog appends here -->
|
|
61
|
+
- {{DATE}} — v0.1 — Initial scaffold (phase 2).
|
aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/deployment-topology.template.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: deployment-topology
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
version: "0.1"
|
|
5
|
+
status: draft
|
|
6
|
+
last_updated: "{{DATE}}"
|
|
7
|
+
phase: 2
|
|
8
|
+
owner: artifact-manager
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Deployment Topology — {{PROJECT_NAME}}
|
|
12
|
+
|
|
13
|
+
> How the software runs in the cloud: networks, environments, and recovery. Nodes use
|
|
14
|
+
> the `DEP-` prefix and `mitigates` the operational non-functional requirements
|
|
15
|
+
> (`NFR-*`) they address. Proposed by `platform-architect`, written by
|
|
16
|
+
> `artifact-manager`.
|
|
17
|
+
|
|
18
|
+
## Legend
|
|
19
|
+
|
|
20
|
+
- **Zone**: `public` | `private` | `data` | `management`
|
|
21
|
+
- **Status**: `draft` | `in-review` | `approved` | `removed`
|
|
22
|
+
|
|
23
|
+
## 1. Network Topology
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
flowchart TB
|
|
27
|
+
Internet((Internet)) --> LB[Load Balancer]
|
|
28
|
+
LB --> GW[API Gateway]
|
|
29
|
+
subgraph VPC
|
|
30
|
+
subgraph Public Subnet
|
|
31
|
+
GW
|
|
32
|
+
end
|
|
33
|
+
subgraph Private Subnet
|
|
34
|
+
APP[App Services]
|
|
35
|
+
end
|
|
36
|
+
subgraph Data Subnet
|
|
37
|
+
DB[(Database)]
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
GW --> APP --> DB
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 2. Topology Nodes
|
|
44
|
+
|
|
45
|
+
| ID | Node | Zone | Runtime | mitigates | Status |
|
|
46
|
+
|------|------|------|---------|-----------|--------|
|
|
47
|
+
| DEP-001 | _..._ | private | container | NFR-001 | draft |
|
|
48
|
+
|
|
49
|
+
## 3. Environments
|
|
50
|
+
|
|
51
|
+
| Environment | Purpose | Scale | Promotion gate |
|
|
52
|
+
|-------------|---------|-------|----------------|
|
|
53
|
+
| Dev | _..._ | minimal | PR merge |
|
|
54
|
+
| QA | _..._ | minimal | tests pass |
|
|
55
|
+
| Staging | _..._ | prod-like | sign-off |
|
|
56
|
+
| Prod | _..._ | full | change approval |
|
|
57
|
+
|
|
58
|
+
## 4. CI/CD & Infrastructure as Code
|
|
59
|
+
|
|
60
|
+
- **Pipeline**: _build → test → scan → deploy stages._
|
|
61
|
+
- **IaC**: _Terraform / Ansible — module layout and state management._
|
|
62
|
+
- **Promotion**: _how artifacts move Dev → QA → Staging → Prod._
|
|
63
|
+
|
|
64
|
+
## 5. Disaster Recovery
|
|
65
|
+
|
|
66
|
+
| Metric | Target | Implementation |
|
|
67
|
+
|--------|--------|----------------|
|
|
68
|
+
| RTO | _..._ | _..._ |
|
|
69
|
+
| RPO | _..._ | _..._ |
|
|
70
|
+
|
|
71
|
+
_Backups, replication, failover region, and restore drills. Targets derive from
|
|
72
|
+
`NFR-*` reliability requirements._
|
|
73
|
+
|
|
74
|
+
## Changelog
|
|
75
|
+
|
|
76
|
+
<!-- artifact_tools changelog appends here -->
|
|
77
|
+
- {{DATE}} — v0.1 — Initial scaffold (phase 2).
|
aegis_sdlc-0.1.1/aegis/skills/artifact-management/assets/templates/executive-briefing.template.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: executive-briefing
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
version: "0.1"
|
|
5
|
+
status: draft
|
|
6
|
+
last_updated: "{{DATE}}"
|
|
7
|
+
phase: 1
|
|
8
|
+
owner: artifact-manager
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Executive Briefing — {{PROJECT_NAME}}
|
|
12
|
+
|
|
13
|
+
> One page for stakeholders. Synthesized from the other five artifacts. Keep it tight.
|
|
14
|
+
|
|
15
|
+
## The Ask
|
|
16
|
+
_One sentence: what decision or support is needed._
|
|
17
|
+
|
|
18
|
+
## Opportunity
|
|
19
|
+
_The problem and the value of solving it — 2-3 sentences._
|
|
20
|
+
|
|
21
|
+
## Proposed Solution
|
|
22
|
+
_What we will build, at a glance._
|
|
23
|
+
|
|
24
|
+
## Scope Snapshot
|
|
25
|
+
- **In:** _..._
|
|
26
|
+
- **Out (now):** _..._
|
|
27
|
+
|
|
28
|
+
## Success Metrics
|
|
29
|
+
| Metric | Target |
|
|
30
|
+
|--------|--------|
|
|
31
|
+
| _..._ | _..._ |
|
|
32
|
+
|
|
33
|
+
## Key Risks
|
|
34
|
+
| ID | Risk | Likelihood | Impact | Mitigation |
|
|
35
|
+
|------|------|-----------|--------|-----------|
|
|
36
|
+
| RISK-001 | _..._ | med | high | _..._ |
|
|
37
|
+
|
|
38
|
+
## Status
|
|
39
|
+
- **Phase:** 1
|
|
40
|
+
- **Overall readiness:** draft
|
|
41
|
+
|
|
42
|
+
## Changelog
|
|
43
|
+
|
|
44
|
+
<!-- artifact_tools changelog appends here -->
|
|
45
|
+
- {{DATE}} — v0.1 — Initial scaffold (phase 1).
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
artifact: functional-requirements
|
|
3
|
+
title: "{{TITLE}}"
|
|
4
|
+
version: "0.1"
|
|
5
|
+
status: draft
|
|
6
|
+
last_updated: "{{DATE}}"
|
|
7
|
+
phase: 1
|
|
8
|
+
owner: artifact-manager
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Functional Requirements — {{PROJECT_NAME}}
|
|
12
|
+
|
|
13
|
+
> What the system must do. Each requirement is atomic, testable, and traces back to
|
|
14
|
+
> a product goal (`PR-*`) or a user journey (`UJ-*`). IDs use the `FR-` prefix.
|
|
15
|
+
|
|
16
|
+
## Legend
|
|
17
|
+
|
|
18
|
+
- **Priority**: `must` | `should` | `could` | `wont`
|
|
19
|
+
- **Status**: `draft` | `in-review` | `approved` | `removed`
|
|
20
|
+
- **traces_to**: comma-separated `PR-*` / `UJ-*` ids that justify this requirement.
|
|
21
|
+
|
|
22
|
+
## Requirements
|
|
23
|
+
|
|
24
|
+
| ID | Requirement | Priority | traces_to | Status |
|
|
25
|
+
|------|-------------|----------|-----------|--------|
|
|
26
|
+
| FR-001 | The system shall _..._ | must | PR-001 | draft |
|
|
27
|
+
|
|
28
|
+
## Acceptance Criteria
|
|
29
|
+
|
|
30
|
+
### FR-001
|
|
31
|
+
- Given _..._, when _..._, then _..._.
|
|
32
|
+
|
|
33
|
+
## Changelog
|
|
34
|
+
|
|
35
|
+
<!-- artifact_tools changelog appends here -->
|
|
36
|
+
- {{DATE}} — v0.1 — Initial scaffold (phase 1).
|