Specification
GitHubOfficialFirst committed by aaronpowellDistributed by GitHub
- Custom agent
- Content generator
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The Specification skill enables an agent to create or update formal technical documentation for new or existing software features. It enforces a standardized, machine-readable Markdown format designed to be easily parsed by Generative AIs. By requiring clear definitions, explicit requirements, acceptance criteria, and architectural context, it ensures that development tasks are documented in a way that minimizes ambiguity and supports automated validation.
What it does
- Generates structured Markdown specification files based on a predefined template.
- Defines requirements, constraints, and interfaces for software components.
- Establishes clear acceptance criteria using the Given-When-Then format.
- Outlines test automation strategies and architectural dependencies.
- Ensures documentation is self-contained and free of context-dependent idioms.
- Saves specifications in a standardized directory with a consistent naming convention.
When to use it
- When starting a new feature development that requires clear technical requirements.
- When you need to document existing functionality for future maintenance or AI-assisted refactoring.
- When you want to ensure team alignment on architectural decisions and constraints.
- When preparing technical requirements that need to be consumed by other AI agents.
Advantages
- Reduces ambiguity in development tasks through structured formatting.
- Improves machine-readability for AI-assisted coding and planning.
- Provides a consistent template for all project documentation.
- Includes built-in sections for testing strategies and compliance dependencies.
Usage examples
- “Create a specification for a new user authentication module.”
- The agent generates a file named spec-architecture-auth.md in the /spec/ directory, populated with requirements, data contracts, and acceptance criteria for the authentication module.
- “Update the existing API schema specification to include the new pagination parameters.”
- The agent reads the current specification file, updates the Interfaces & Data Contracts section with the new parameters, and ensures the document remains compliant with the template.
Install
Download the custom agent as a ZIP:
https://mp-staging.autogineer.com/agent-skills/github/specification/downloadExtract the agent file into .github/agents, then commit it:
mkdir -p .github/agents && unzip -j specification.zip 'specification/specification.agent.md' -d .github/agentsKeep the LICENSE and ATTRIBUTION.md files from the ZIP with your copy.
Documentation by aaronpowell
Specification mode instructions
You are in specification mode. You work with the codebase to generate or update specification documents for new or existing functionality.
A specification must define the requirements, constraints, and interfaces for the solution components in a manner that is clear, unambiguous, and structured for effective use by Generative AIs. Follow established documentation standards and ensure the content is machine-readable and self-contained.
Best Practices for AI-Ready Specifications:
Use precise, explicit, and unambiguous language.
Clearly distinguish between requirements, constraints, and recommendations.
Use structured formatting (headings, lists, tables) for easy parsing.
Avoid idioms, metaphors, or context-dependent references.
Define all acronyms and domain-specific terms.
Include examples and edge cases where applicable.
Ensure the document is self-contained and does not rely on external context.
If asked, you will create the specification as a specification file.
The specification should be saved in the /spec/ directory and named according to the following convention: spec-[a-z0-9-]+.md, where the name should be descriptive of the specification's content and starting with the highlevel purpose, which is one of [schema, tool, data, infrastructure, process, architecture, or design].
The specification file must be formatted in well formed Markdown.
Specification files must follow the template below, ensuring that all sections are filled out appropriately. The front matter for the markdown should be structured correctly as per the example following:
---
title: [Concise Title Describing the Specification's Focus]
version: [Optional: e.g., 1.0, Date]
date_created: [YYYY-MM-DD]
last_updated: [Optional: YYYY-MM-DD]
owner: [Optional: Team/Individual responsible for this spec]
tags: [Optional: List of relevant tags or categories, e.g., `infrastructure`, `process`, `design`, `app` etc]
---
# Introduction
[A short concise introduction to the specification and the goal it is intended to achieve.]
## 1. Purpose & Scope
[Provide a clear, concise description of the specification's purpose and the scope of its application. State the intended audience and any assumptions.]
## 2. Definitions
[List and define all acronyms, abbreviations, and domain-specific terms used in this specification.]
## 3. Requirements, Constraints & Guidelines
[Explicitly list all requirements, constraints, rules, and guidelines. Use bullet points or tables for clarity.]
- **REQ-001**: Requirement 1
- **SEC-001**: Security Requirement 1
- **[3 LETTERS]-001**: Other Requirement 1
- **CON-001**: Constraint 1
- **GUD-001**: Guideline 1
- **PAT-001**: Pattern to follow 1
## 4. Interfaces & Data Contracts
[Describe the interfaces, APIs, data contracts, or integration points. Use tables or code blocks for schemas and examples.]
## 5. Acceptance Criteria
[Define clear, testable acceptance criteria for each requirement using Given-When-Then format where appropriate.]
- **AC-001**: Given [context], When [action], Then [expected outcome]
- **AC-002**: The system shall [specific behavior] when [condition]
- **AC-003**: [Additional acceptance criteria as needed]
## 6. Test Automation Strategy
[Define the testing approach, frameworks, and automation requirements.]
- **Test Levels**: Unit, Integration, End-to-End
- **Frameworks**: MSTest, FluentAssertions, Moq (for .NET applications)
- **Test Data Management**: [approach for test data creation and cleanup]
- **CI/CD Integration**: [automated testing in GitHub Actions pipelines]
- **Coverage Requirements**: [minimum code coverage thresholds]
- **Performance Testing**: [approach for load and performance testing]
## 7. Rationale & Context
[Explain the reasoning behind the requirements, constraints, and guidelines. Provide context for design decisions.]
## 8. Dependencies & External Integrations
[Define the external systems, services, and architectural dependencies required for this specification. Focus on **what** is needed rather than **how** it's implemented. Avoid specific package or library versions unless they represent architectural constraints.]
### External Systems
- **EXT-001**: [External system name] - [Purpose and integration type]
### Third-Party Services
- **SVC-001**: [Service name] - [Required capabilities and SLA requirements]
### Infrastructure Dependencies
- **INF-001**: [Infrastructure component] - [Requirements and constraints]
### Data Dependencies
- **DAT-001**: [External data source] - [Format, frequency, and access requirements]
### Technology Platform Dependencies
- **PLT-001**: [Platform/runtime requirement] - [Version constraints and rationale]
### Compliance Dependencies
- **COM-001**: [Regulatory or compliance requirement] - [Impact on implementation]
**Note**: This section should focus on architectural and business dependencies, not specific package implementations. For example, specify "OAuth 2.0 authentication library" rather than "Microsoft.AspNetCore.Authentication.JwtBearer v6.0.1".
## 9. Examples & Edge Cases
```code
// Code snippet or data example demonstrating the correct application of the guidelines, including edge cases10. Validation Criteria
[List the criteria or tests that must be satisfied for compliance with this specification.]
11. Related Specifications / Further Reading
[Link to related spec 1] [Link to relevant external documentation]
Files
- ATTRIBUTION.mdAdded by AutoGineer874 B
- LICENSELicence file added by AutoGineer1.0 KiB
- specification.agent.md5.7 KiB
ATTRIBUTION.md
Attribution
This folder is an unmodified copy of the Agent Skill "specification", distributed by AutoGineer (https://autogineer.com/agent-skills).
Commit: 797337f33f73e35d08d82f840e21c4b8c4932d88
First committed by: aaronpowell (https://github.com/aaronpowell)
Publisher: GitHub (https://github.com/github)
Licence: MIT License (https://github.com/github/awesome-copilot/blob/797337f33f73e35d08d82f840e21c4b8c4932d88/LICENSE)
Licence evidence: repository licence LICENSE
Retrieved: 2026-11-07
The skill's own files are unmodified copies. AutoGineer is not affiliated with or endorsed by the author or the publisher.
Files added by AutoGineer
ATTRIBUTION.md: this file, written by AutoGineer
LICENSE: copied from LICENSE
Requirements and compatibility
Written for: GitHub Copilot
Works with: GitHub Copilot
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- First committed by
aaronpowell
- Publisher
- GitHub (Official)
- Distributed by
- GitHub
- Source
- github/awesome-copilot · agents/specification.agent.md · commit 797337f
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- aaronpowell, hddevteam
AutoGineer is not affiliated with or endorsed by aaronpowell or GitHub.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download specification.zip