Turn any documentation URL into structured software artifacts — Architecture Decision Records (ADRs), Product Requirements Documents (PRDs), Technical Design Documents (TDDs), or Task Lists — using GitHub Copilot agent mode or a reproducible multi-agent Python pipeline.
Inspired by The importance of artifacts in AI-assisted programming: AI has no long-term memory, so artifacts become the only traceability mechanism — and the primary inputs that guide AI toward correct implementations.
GitHub Copilot is an AI pair-programmer embedded in VS Code. In this project it is used in agent mode — Copilot reads .github/skills/ instruction files to gain domain knowledge and orchestrates multi-step tasks autonomously: fetching documentation, extracting structured artifacts, and writing output files, all within the editor.
Key files that shape Copilot's behaviour:
| File | Purpose |
|---|---|
.github/skills/adr-normalization/SKILL.md |
Canonical ADR format & validation rules |
.github/skills/prd-normalization/SKILL.md |
Canonical PRD format & validation rules |
.github/skills/tdd-normalization/SKILL.md |
Canonical TDD format & validation rules |
.github/skills/task-normalization/SKILL.md |
Canonical Task format & sequencing rules |
AGENTS.md |
Agent roster and pipeline overview |
sample output: sample_artifacts/github_copilot/*.md
The pipeline is implemented with the Microsoft Agent Framework (agent-framework) and runs end-to-end from a single URL to a finished artifact file. Four document types are supported via --type:
DocIngestAgent → ADRExtractionAgent → StubParserNode → BestPracticeAgent → ReportWriterNode → ADR.md
| Stage | Class / Factory | Output |
|---|---|---|
| Fetch docs | create_doc_ingest_agent |
raw page text |
| Extract stubs | create_adr_extraction_agent |
ADRStubList (JSON) |
| Parse & relay | StubParserNode |
formatted prompt |
| Expand entries | create_best_practice_agent |
ADREntryList (JSON) |
| Write report | ReportWriterNode |
ADR.md |
DocIngestAgent → {PRD|TDD|Task}ExtractionAgent → {PRD|TDD|Task}WriterNode → {PRD|TDD|TASKS}.md
--type |
Extraction Agent | Writer Node | Output |
|---|---|---|---|
prd |
create_prd_extraction_agent |
PRDWriterNode |
PRD.md |
tdd |
create_tdd_extraction_agent |
TDDWriterNode |
TDD.md |
tasks |
create_task_extraction_agent |
TaskWriterNode |
TASKS.md |
sample output: sample_artifacts/python_agent/*.md
cp .env.example .env # set AZURE_AI_PROJECT_ENDPOINT and AZURE_AI_MODEL_DEPLOYMENT_NAME
az login
uv sync
# ADR (default)
uv run python main.py https://learn.microsoft.com/en-us/power-platform/alm/pipelines ADR.md
# PRD
uv run python main.py https://example.com/spec PRD.md --type prd
# TDD
uv run python main.py https://example.com/design TDD.md --type tdd
# Task list
uv run python main.py https://example.com/design TASKS.md --type tasksuv run pytest tests/ -v