structguru 0.1.0__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.
- structguru-0.1.0/.agents/SCHEMA.yaml +1080 -0
- structguru-0.1.0/.agents/STANDARDS.md +1170 -0
- structguru-0.1.0/.agents/STANDARD_UPDATE_PLAYBOOK.md +175 -0
- structguru-0.1.0/.agents/contexts/conventions/FILE_PLACEMENT_MAP.md +99 -0
- structguru-0.1.0/.agents/contexts/conventions/STYLE_PROFILE.md +128 -0
- structguru-0.1.0/.agents/contexts/security/DEPENDENCY_POLICY.md +53 -0
- structguru-0.1.0/.agents/contexts/security/SECRETS_POLICY.md +55 -0
- structguru-0.1.0/.agents/contexts/security/SECURITY_OVERVIEW.md +67 -0
- structguru-0.1.0/.agents/contexts/security/THREAT_MODEL.md +59 -0
- structguru-0.1.0/.agents/rag.manifest.template.yaml +34 -0
- structguru-0.1.0/.agents/rag.manifest.yaml +34 -0
- structguru-0.1.0/.agents/research/agent-runtime-features_codex-claude-gemini_v0.1.0.md +118 -0
- structguru-0.1.0/.agents/research/agentic-cybersecurity-best-practices_v0.1.0.md +157 -0
- structguru-0.1.0/.agents/research/token-compression-techniques_v0.1.0.md +322 -0
- structguru-0.1.0/.agents/runbooks/BOOTSTRAP_EMPTY_REPO.md +154 -0
- structguru-0.1.0/.agents/runbooks/MIGRATE_FROM_CURSOR.md +119 -0
- structguru-0.1.0/.agents/runbooks/README.md +35 -0
- structguru-0.1.0/.agents/runbooks/security/SECURITY_CHANGE_CHECKLIST.md +73 -0
- structguru-0.1.0/.agents/runbooks/update_project_conventions_from_git.md +102 -0
- structguru-0.1.0/.agents/schemas/README.md +31 -0
- structguru-0.1.0/.agents/skills/project-conventions/SKILL.md +76 -0
- structguru-0.1.0/.agents/skills/senior-python-developer/SKILL.md +97 -0
- structguru-0.1.0/.agents/templates/AGENTS_TEMPLATE.md +62 -0
- structguru-0.1.0/.agents/templates/CURSORIGNORE_TEMPLATE +15 -0
- structguru-0.1.0/.agents/templates/CURSORINDEXINGIGNORE_TEMPLATE +9 -0
- structguru-0.1.0/.agents/templates/CURSOR_GLOBAL_RULE_TEMPLATE.mdc +23 -0
- structguru-0.1.0/.agents/templates/DOCUMENT_TEMPLATE.md +90 -0
- structguru-0.1.0/.agents/templates/FILE_PLACEMENT_MAP_TEMPLATE.md +83 -0
- structguru-0.1.0/.agents/templates/RESEARCH_TEMPLATE.md +112 -0
- structguru-0.1.0/.agents/templates/RUNBOOK_TEMPLATE.md +44 -0
- structguru-0.1.0/.agents/templates/SECURITY_POLICY_TEMPLATE.md +53 -0
- structguru-0.1.0/.agents/templates/SKILL_TEMPLATE.md +76 -0
- structguru-0.1.0/.agents/templates/SOURCE_TEMPLATE.md +63 -0
- structguru-0.1.0/.agents/templates/STYLE_PROFILE_TEMPLATE.md +112 -0
- structguru-0.1.0/.aiexclude +43 -0
- structguru-0.1.0/.claude/settings.local.json +29 -0
- structguru-0.1.0/.idea/.gitignore +10 -0
- structguru-0.1.0/.idea/copilot.data.migration.ask2agent.xml +6 -0
- structguru-0.1.0/.idea/inspectionProfiles/Project_Default.xml +14 -0
- structguru-0.1.0/.idea/inspectionProfiles/profiles_settings.xml +6 -0
- structguru-0.1.0/.idea/misc.xml +8 -0
- structguru-0.1.0/.idea/modules.xml +8 -0
- structguru-0.1.0/.idea/structguru.iml +10 -0
- structguru-0.1.0/.idea/vcs.xml +6 -0
- structguru-0.1.0/.idea/workspace.xml +128 -0
- structguru-0.1.0/AGENT.md +1 -0
- structguru-0.1.0/AGENTS.md +67 -0
- structguru-0.1.0/CLAUDE.md +1 -0
- structguru-0.1.0/CODE_SUMMARY.md +52 -0
- structguru-0.1.0/GEMINI.md +1 -0
- structguru-0.1.0/LICENSE +21 -0
- structguru-0.1.0/Makefile +35 -0
- structguru-0.1.0/PKG-INFO +391 -0
- structguru-0.1.0/PROMPT_STRUCTGURU.md +701 -0
- structguru-0.1.0/README.md +341 -0
- structguru-0.1.0/pyproject.toml +94 -0
- structguru-0.1.0/src/structguru/__init__.py +26 -0
- structguru-0.1.0/src/structguru/config.py +285 -0
- structguru-0.1.0/src/structguru/core.py +264 -0
- structguru-0.1.0/src/structguru/exceptions.py +82 -0
- structguru-0.1.0/src/structguru/integrations/__init__.py +5 -0
- structguru-0.1.0/src/structguru/integrations/asgi.py +101 -0
- structguru-0.1.0/src/structguru/integrations/celery.py +80 -0
- structguru-0.1.0/src/structguru/integrations/django.py +125 -0
- structguru-0.1.0/src/structguru/integrations/flask.py +79 -0
- structguru-0.1.0/src/structguru/integrations/grpc.py +60 -0
- structguru-0.1.0/src/structguru/integrations/sentry.py +97 -0
- structguru-0.1.0/src/structguru/integrations/sqlalchemy.py +79 -0
- structguru-0.1.0/src/structguru/metrics.py +65 -0
- structguru-0.1.0/src/structguru/otel.py +32 -0
- structguru-0.1.0/src/structguru/processors.py +95 -0
- structguru-0.1.0/src/structguru/py.typed +0 -0
- structguru-0.1.0/src/structguru/queued.py +88 -0
- structguru-0.1.0/src/structguru/redaction.py +75 -0
- structguru-0.1.0/src/structguru/routing.py +63 -0
- structguru-0.1.0/src/structguru/sampling.py +104 -0
- structguru-0.1.0/tests/conftest.py +30 -0
- structguru-0.1.0/tests/test_config.py +168 -0
- structguru-0.1.0/tests/test_core.py +284 -0
- structguru-0.1.0/tests/test_exceptions.py +99 -0
- structguru-0.1.0/tests/test_integrations/__init__.py +0 -0
- structguru-0.1.0/tests/test_integrations/test_asgi.py +138 -0
- structguru-0.1.0/tests/test_integrations/test_celery.py +131 -0
- structguru-0.1.0/tests/test_integrations/test_django.py +91 -0
- structguru-0.1.0/tests/test_integrations/test_flask.py +73 -0
- structguru-0.1.0/tests/test_integrations/test_grpc.py +60 -0
- structguru-0.1.0/tests/test_integrations/test_sentry.py +83 -0
- structguru-0.1.0/tests/test_integrations/test_sqlalchemy.py +72 -0
- structguru-0.1.0/tests/test_metrics.py +61 -0
- structguru-0.1.0/tests/test_otel.py +57 -0
- structguru-0.1.0/tests/test_processors.py +125 -0
- structguru-0.1.0/tests/test_queued.py +63 -0
- structguru-0.1.0/tests/test_redaction.py +62 -0
- structguru-0.1.0/tests/test_routing.py +51 -0
- structguru-0.1.0/tests/test_sampling.py +86 -0
- structguru-0.1.0/uv.lock +1122 -0
|
@@ -0,0 +1,1080 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# AI Agent Documentation Schema v2.4
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Complete field definitions for AI Agent Documentation Standards
|
|
5
|
+
#
|
|
6
|
+
# Enhancements in v2.4:
|
|
7
|
+
# - Patch v2.4.8: optional security_posture (protected paths, SBOM/SLSA posture)
|
|
8
|
+
# - Cross-platform compatibility (AGENTS.md)
|
|
9
|
+
# - MCP (Model Context Protocol) integration
|
|
10
|
+
# - A2A (Agent-to-Agent) protocol support
|
|
11
|
+
# - OASF (Open Agentic Schema Framework) taxonomy
|
|
12
|
+
# - OpenTelemetry GenAI semantic conventions
|
|
13
|
+
# - Context engineering (budgeting, progressive disclosure, retrieval hints)
|
|
14
|
+
#
|
|
15
|
+
# References:
|
|
16
|
+
# - MCP: https://modelcontextprotocol.io/specification/2025-11-25
|
|
17
|
+
# - A2A: https://github.com/a2aproject/A2A
|
|
18
|
+
# - OASF: https://schema.oasf.outshift.com/
|
|
19
|
+
# - OTel GenAI: https://opentelemetry.io/docs/specs/semconv/gen-ai/
|
|
20
|
+
# - AGENTS.md: https://agents.md/
|
|
21
|
+
# - Codex AGENTS.md guide: https://developers.openai.com/codex/guides/agents-md/
|
|
22
|
+
# - Codex security: https://developers.openai.com/codex/security/
|
|
23
|
+
# - Codex rules: https://developers.openai.com/codex/rules
|
|
24
|
+
# - Codex non-interactive mode: https://developers.openai.com/codex/noninteractive
|
|
25
|
+
# - Codex MCP: https://developers.openai.com/codex/mcp
|
|
26
|
+
# - Codex skills: https://developers.openai.com/codex/skills
|
|
27
|
+
# - Claude Code docs: https://code.claude.com/docs/en/overview
|
|
28
|
+
# - Gemini Code Assist agent mode: https://developers.google.com/gemini-code-assist/docs/agent-mode/overview
|
|
29
|
+
# - Gemini Code Assist .aiexclude: https://developers.google.com/gemini-code-assist/docs/exclude-files
|
|
30
|
+
# - Claude Code best practices: https://www.anthropic.com/engineering/claude-code-best-practices
|
|
31
|
+
# - Gemini agent files (Android Studio): https://developer.android.com/studio/gemini/agent-files
|
|
32
|
+
# - GitLab Duo AGENTS.md: https://docs.gitlab.com/user/gitlab_duo/customize_duo/agents_md/
|
|
33
|
+
# - Codex agent loop deep dive: https://openai.com/index/unrolling-the-codex-agent-loop/
|
|
34
|
+
|
|
35
|
+
# =============================================================================
|
|
36
|
+
|
|
37
|
+
_meta:
|
|
38
|
+
schema_version: "2.4"
|
|
39
|
+
title: Schema Definitions
|
|
40
|
+
status: active
|
|
41
|
+
version: "2.4.12"
|
|
42
|
+
last_updated: "2026-02-06"
|
|
43
|
+
# =============================================================================
|
|
44
|
+
# VALIDATION SEVERITY LEVELS
|
|
45
|
+
# =============================================================================
|
|
46
|
+
|
|
47
|
+
validation_severities:
|
|
48
|
+
ERROR: "Document invalid, must not be consumed"
|
|
49
|
+
WARNING: "Document incomplete, proceed with caution"
|
|
50
|
+
INFO: "Suggestion only, no action required"
|
|
51
|
+
|
|
52
|
+
# =============================================================================
|
|
53
|
+
# REQUIRED FIELDS
|
|
54
|
+
# =============================================================================
|
|
55
|
+
|
|
56
|
+
fields:
|
|
57
|
+
|
|
58
|
+
schema_version:
|
|
59
|
+
type: string
|
|
60
|
+
required: true
|
|
61
|
+
validation: ERROR
|
|
62
|
+
description: Schema version this document conforms to
|
|
63
|
+
pattern: '^\d+\.\d+$'
|
|
64
|
+
example: "2.4"
|
|
65
|
+
notes: |
|
|
66
|
+
Agents MUST reject documents with a higher major version.
|
|
67
|
+
Format: MAJOR.MINOR (no patch version)
|
|
68
|
+
|
|
69
|
+
title:
|
|
70
|
+
type: string
|
|
71
|
+
required: true
|
|
72
|
+
validation: ERROR
|
|
73
|
+
description: Human-readable document title
|
|
74
|
+
max_length: 200
|
|
75
|
+
example: "Payment Gateway Service Context"
|
|
76
|
+
|
|
77
|
+
description:
|
|
78
|
+
type: string
|
|
79
|
+
required: false
|
|
80
|
+
validation: WARNING
|
|
81
|
+
description: Short summary used for listings and retrieval (1–3 sentences)
|
|
82
|
+
max_length: 400
|
|
83
|
+
example: "Context for the Payment Gateway service: purpose, boundaries, and key integrations."
|
|
84
|
+
notes: |
|
|
85
|
+
RECOMMENDED for better search and progressive disclosure.
|
|
86
|
+
Use a quoted string in YAML frontmatter.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
category:
|
|
90
|
+
type: enum
|
|
91
|
+
required: true
|
|
92
|
+
validation: ERROR
|
|
93
|
+
description: Document classification
|
|
94
|
+
values:
|
|
95
|
+
- service-context # Service/application documentation
|
|
96
|
+
- skill # Reusable capability or pattern
|
|
97
|
+
- decision-record # Architectural decision record (ADR)
|
|
98
|
+
- runbook # Operational procedures
|
|
99
|
+
- agent-config # AI agent configuration
|
|
100
|
+
- api-spec # API documentation
|
|
101
|
+
- data-model # Data structure definitions
|
|
102
|
+
- integration # Third-party integration docs
|
|
103
|
+
- security # Security policies
|
|
104
|
+
- testing # Test strategies
|
|
105
|
+
- specification # Product/technical specifications
|
|
106
|
+
- research-report # Research results with sources/evidence
|
|
107
|
+
- source-document # Captured source material / provenance record
|
|
108
|
+
|
|
109
|
+
status:
|
|
110
|
+
type: enum
|
|
111
|
+
required: true
|
|
112
|
+
validation: ERROR
|
|
113
|
+
description: Document lifecycle status
|
|
114
|
+
values:
|
|
115
|
+
- active # Current, authoritative
|
|
116
|
+
- deprecated # Being phased out
|
|
117
|
+
- sunset # No longer valid
|
|
118
|
+
- draft # Work in progress
|
|
119
|
+
default: active
|
|
120
|
+
agent_behavior:
|
|
121
|
+
active: "Consume normally"
|
|
122
|
+
deprecated: "Warn, suggest alternatives, proceed with caution"
|
|
123
|
+
sunset: "Do not use, search for replacement"
|
|
124
|
+
draft: "Use only if explicitly requested"
|
|
125
|
+
|
|
126
|
+
last_updated:
|
|
127
|
+
type: date
|
|
128
|
+
required: true
|
|
129
|
+
validation: ERROR
|
|
130
|
+
description: Date of last modification
|
|
131
|
+
format: "ISO-8601 (YYYY-MM-DD)"
|
|
132
|
+
example: "2026-01-02"
|
|
133
|
+
|
|
134
|
+
notes: |
|
|
135
|
+
Prefer quoting the date string in YAML frontmatter:
|
|
136
|
+
last_updated: "2026-01-02"
|
|
137
|
+
This avoids YAML 1.1 implicit date parsing differences across parsers.
|
|
138
|
+
|
|
139
|
+
# =============================================================================
|
|
140
|
+
# RECOMMENDED FIELDS
|
|
141
|
+
# =============================================================================
|
|
142
|
+
|
|
143
|
+
version:
|
|
144
|
+
type: string
|
|
145
|
+
required: false
|
|
146
|
+
validation: WARNING
|
|
147
|
+
description: Document content version (semver)
|
|
148
|
+
pattern: '^\d+\.\d+\.\d+$'
|
|
149
|
+
example: "1.2.0"
|
|
150
|
+
|
|
151
|
+
notes: |
|
|
152
|
+
Use a quoted string in YAML frontmatter:
|
|
153
|
+
version: "1.2.0"
|
|
154
|
+
|
|
155
|
+
retrieval_priority:
|
|
156
|
+
type: enum
|
|
157
|
+
required: false
|
|
158
|
+
validation: WARNING
|
|
159
|
+
description: Importance for retrieval ranking
|
|
160
|
+
values:
|
|
161
|
+
- critical # Must be retrieved
|
|
162
|
+
- high # Strong preference
|
|
163
|
+
- medium # Standard priority
|
|
164
|
+
- low # Only if highly relevant
|
|
165
|
+
default: medium
|
|
166
|
+
|
|
167
|
+
retrieval_scope:
|
|
168
|
+
type: enum
|
|
169
|
+
required: false
|
|
170
|
+
validation: WARNING
|
|
171
|
+
description: Applicability scope
|
|
172
|
+
values:
|
|
173
|
+
- service # Specific to one service
|
|
174
|
+
- skill # Reusable across services
|
|
175
|
+
- global # Organization-wide
|
|
176
|
+
default: service
|
|
177
|
+
tie_breaker_order: ["service", "skill", "global"]
|
|
178
|
+
|
|
179
|
+
last_verified:
|
|
180
|
+
type: date
|
|
181
|
+
required: false
|
|
182
|
+
validation: WARNING
|
|
183
|
+
description: Date content was verified accurate
|
|
184
|
+
format: "ISO-8601 (YYYY-MM-DD)"
|
|
185
|
+
|
|
186
|
+
notes: |
|
|
187
|
+
Prefer quoting the date string in YAML frontmatter:
|
|
188
|
+
last_verified: "2026-01-02"
|
|
189
|
+
This avoids YAML 1.1 implicit date parsing differences across parsers.
|
|
190
|
+
|
|
191
|
+
owner:
|
|
192
|
+
type: string
|
|
193
|
+
required: false
|
|
194
|
+
validation: WARNING
|
|
195
|
+
description: Team or individual responsible
|
|
196
|
+
example: "Payments Team"
|
|
197
|
+
|
|
198
|
+
verification_owner:
|
|
199
|
+
type: string
|
|
200
|
+
required: false
|
|
201
|
+
validation: INFO
|
|
202
|
+
description: Team responsible for verification
|
|
203
|
+
example: "Platform Engineering"
|
|
204
|
+
|
|
205
|
+
# =============================================================================
|
|
206
|
+
# OPTIONAL - BASIC METADATA
|
|
207
|
+
# =============================================================================
|
|
208
|
+
|
|
209
|
+
name:
|
|
210
|
+
type: string
|
|
211
|
+
required: false
|
|
212
|
+
validation: INFO
|
|
213
|
+
description: |
|
|
214
|
+
Stable identifier used by agent skill loaders (e.g., Codex `SKILL.md`).
|
|
215
|
+
RECOMMENDED for `category: skill` documents and REQUIRED for Codex skill compatibility.
|
|
216
|
+
pattern: '^[a-z0-9][a-z0-9-]{2,64}$'
|
|
217
|
+
example: "project-conventions"
|
|
218
|
+
notes: |
|
|
219
|
+
In `SKILL.md`, Codex requires top-level `name` and `description` fields in YAML frontmatter.
|
|
220
|
+
Keep `description` a single line (avoid multi-line YAML blocks) for maximum compatibility.
|
|
221
|
+
|
|
222
|
+
service_type:
|
|
223
|
+
type: enum
|
|
224
|
+
required: false
|
|
225
|
+
values:
|
|
226
|
+
- application
|
|
227
|
+
- library
|
|
228
|
+
- infrastructure
|
|
229
|
+
- platform
|
|
230
|
+
- tool
|
|
231
|
+
- external
|
|
232
|
+
|
|
233
|
+
language:
|
|
234
|
+
type: enum
|
|
235
|
+
required: false
|
|
236
|
+
values:
|
|
237
|
+
- csharp
|
|
238
|
+
- python
|
|
239
|
+
- typescript
|
|
240
|
+
- javascript
|
|
241
|
+
- go
|
|
242
|
+
- rust
|
|
243
|
+
- java
|
|
244
|
+
- kotlin
|
|
245
|
+
- ruby
|
|
246
|
+
- php
|
|
247
|
+
- multi
|
|
248
|
+
|
|
249
|
+
framework:
|
|
250
|
+
type: string
|
|
251
|
+
required: false
|
|
252
|
+
examples: ["dotnet-9", "fastapi", "nextjs-15", "spring-boot"]
|
|
253
|
+
|
|
254
|
+
tags:
|
|
255
|
+
type: array[string]
|
|
256
|
+
required: false
|
|
257
|
+
example: ["payment", "kafka", "microservice"]
|
|
258
|
+
|
|
259
|
+
keywords:
|
|
260
|
+
type: array[string]
|
|
261
|
+
required: false
|
|
262
|
+
description: Search terms for retrieval
|
|
263
|
+
example: ["billing", "transactions", "refunds"]
|
|
264
|
+
|
|
265
|
+
audience:
|
|
266
|
+
type: array[enum]
|
|
267
|
+
required: false
|
|
268
|
+
values: [developer, architect, devops, security, product, support, all]
|
|
269
|
+
|
|
270
|
+
difficulty:
|
|
271
|
+
type: enum
|
|
272
|
+
required: false
|
|
273
|
+
values: [beginner, intermediate, advanced, expert]
|
|
274
|
+
|
|
275
|
+
depends_on:
|
|
276
|
+
type: array[string]
|
|
277
|
+
required: false
|
|
278
|
+
description: Dependencies (services or document paths)
|
|
279
|
+
example: ["kafka", "postgresql", "./auth-context.md"]
|
|
280
|
+
|
|
281
|
+
supersedes:
|
|
282
|
+
type: string
|
|
283
|
+
required: false
|
|
284
|
+
description: Document this replaces
|
|
285
|
+
example: "./old-payment-context.md"
|
|
286
|
+
|
|
287
|
+
superseded_by:
|
|
288
|
+
type: string
|
|
289
|
+
required: false
|
|
290
|
+
description: Document replacing this one
|
|
291
|
+
example: "./new-payment-context.md"
|
|
292
|
+
|
|
293
|
+
# =============================================================================
|
|
294
|
+
# KNOWLEDGE CAPTURE: RESEARCH & SOURCES (v2.4.3)
|
|
295
|
+
# =============================================================================
|
|
296
|
+
|
|
297
|
+
doc_id:
|
|
298
|
+
type: string
|
|
299
|
+
required: false
|
|
300
|
+
validation: INFO
|
|
301
|
+
description: Stable identifier for this document (recommended for RAG + renames)
|
|
302
|
+
pattern: '^[a-z0-9][a-z0-9-]{2,64}$'
|
|
303
|
+
example: "payments-stripe-refunds"
|
|
304
|
+
|
|
305
|
+
notes: |
|
|
306
|
+
Use a short, stable slug. Do not include dates unless the document is inherently time-bound.
|
|
307
|
+
Prefer keeping doc_id stable even if the filename/path changes.
|
|
308
|
+
|
|
309
|
+
data_handling:
|
|
310
|
+
type: object
|
|
311
|
+
required: false
|
|
312
|
+
validation: INFO
|
|
313
|
+
description: Data classification and RAG ingestion safety flags
|
|
314
|
+
properties:
|
|
315
|
+
classification:
|
|
316
|
+
type: enum
|
|
317
|
+
values: [public, internal, confidential, restricted]
|
|
318
|
+
default: internal
|
|
319
|
+
pii:
|
|
320
|
+
type: enum
|
|
321
|
+
values: [none, low, high]
|
|
322
|
+
default: none
|
|
323
|
+
contains_secrets:
|
|
324
|
+
type: boolean
|
|
325
|
+
default: false
|
|
326
|
+
rag_allowed:
|
|
327
|
+
type: boolean
|
|
328
|
+
default: true
|
|
329
|
+
description: Whether this document may be indexed/embedded for RAG
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
# ---------------------------------------------------------------------------
|
|
334
|
+
# Agent runtime integration (optional)
|
|
335
|
+
# ---------------------------------------------------------------------------
|
|
336
|
+
|
|
337
|
+
execution_policy:
|
|
338
|
+
type: object
|
|
339
|
+
required: false
|
|
340
|
+
validation: INFO
|
|
341
|
+
description: Declared execution posture (sandbox, approvals, network, web search)
|
|
342
|
+
properties:
|
|
343
|
+
default_mode:
|
|
344
|
+
type: enum
|
|
345
|
+
values: [read-only, workspace-write, full-auto]
|
|
346
|
+
default: read-only
|
|
347
|
+
|
|
348
|
+
network:
|
|
349
|
+
type: object
|
|
350
|
+
properties:
|
|
351
|
+
default:
|
|
352
|
+
type: enum
|
|
353
|
+
values: [off, allowlist, on]
|
|
354
|
+
default: off
|
|
355
|
+
allowlist_domains:
|
|
356
|
+
type: array[string]
|
|
357
|
+
required: false
|
|
358
|
+
example:
|
|
359
|
+
- "docs.example.com"
|
|
360
|
+
|
|
361
|
+
approvals:
|
|
362
|
+
type: object
|
|
363
|
+
properties:
|
|
364
|
+
for_workspace_writes:
|
|
365
|
+
type: enum
|
|
366
|
+
values: [never, on-request, always]
|
|
367
|
+
default: on-request
|
|
368
|
+
for_network:
|
|
369
|
+
type: enum
|
|
370
|
+
values: [never, on-request, always]
|
|
371
|
+
default: on-request
|
|
372
|
+
for_outside_workspace:
|
|
373
|
+
type: enum
|
|
374
|
+
values: [never, on-request, always]
|
|
375
|
+
default: always
|
|
376
|
+
|
|
377
|
+
web_search:
|
|
378
|
+
type: object
|
|
379
|
+
properties:
|
|
380
|
+
mode:
|
|
381
|
+
type: enum
|
|
382
|
+
values: [disabled, cached, live]
|
|
383
|
+
default: cached
|
|
384
|
+
|
|
385
|
+
notes: |
|
|
386
|
+
This is a tool-agnostic declaration that can be mapped to:
|
|
387
|
+
- Codex sandbox + approval policy + web_search settings
|
|
388
|
+
- Claude Code permission modes / allowlists
|
|
389
|
+
- Gemini agent mode tool permissions / plan approvals
|
|
390
|
+
|
|
391
|
+
context_exclusion:
|
|
392
|
+
type: object
|
|
393
|
+
required: false
|
|
394
|
+
validation: INFO
|
|
395
|
+
description: Explicit denylist of files/paths that must not be loaded into agent context
|
|
396
|
+
properties:
|
|
397
|
+
aiexclude_file:
|
|
398
|
+
type: string
|
|
399
|
+
default: ".aiexclude"
|
|
400
|
+
patterns:
|
|
401
|
+
type: array[string]
|
|
402
|
+
required: false
|
|
403
|
+
description: Optional explicit patterns (use .gitignore syntax)
|
|
404
|
+
notes:
|
|
405
|
+
type: string
|
|
406
|
+
required: false
|
|
407
|
+
|
|
408
|
+
automation:
|
|
409
|
+
type: object
|
|
410
|
+
required: false
|
|
411
|
+
validation: INFO
|
|
412
|
+
description: Automation/CI settings for agent runs (structured outputs, event logs)
|
|
413
|
+
properties:
|
|
414
|
+
output_schema_paths:
|
|
415
|
+
type: array[string]
|
|
416
|
+
required: false
|
|
417
|
+
description: Paths to JSON Schemas used for structured outputs
|
|
418
|
+
example:
|
|
419
|
+
- ".agents/schemas/release-metadata.schema.json"
|
|
420
|
+
event_log:
|
|
421
|
+
type: object
|
|
422
|
+
required: false
|
|
423
|
+
properties:
|
|
424
|
+
format:
|
|
425
|
+
type: enum
|
|
426
|
+
values: [jsonl, json, text]
|
|
427
|
+
default: jsonl
|
|
428
|
+
path:
|
|
429
|
+
type: string
|
|
430
|
+
required: false
|
|
431
|
+
example: ".agents/artifacts/codex-exec.events.jsonl"
|
|
432
|
+
|
|
433
|
+
project_conventions:
|
|
434
|
+
type: object
|
|
435
|
+
required: false
|
|
436
|
+
validation: INFO
|
|
437
|
+
description: References to repo-level style and file placement convention docs (and optional exemplars)
|
|
438
|
+
properties:
|
|
439
|
+
style_profile_ref:
|
|
440
|
+
type: string
|
|
441
|
+
required: false
|
|
442
|
+
example: ".agents/contexts/conventions/STYLE_PROFILE.md"
|
|
443
|
+
file_placement_map_ref:
|
|
444
|
+
type: string
|
|
445
|
+
required: false
|
|
446
|
+
example: ".agents/contexts/conventions/FILE_PLACEMENT_MAP.md"
|
|
447
|
+
exemplars:
|
|
448
|
+
type: array[string]
|
|
449
|
+
required: false
|
|
450
|
+
description: Optional exemplar file paths that define the house style
|
|
451
|
+
example:
|
|
452
|
+
- "src/<feature>/<module>.ts"
|
|
453
|
+
- "tests/<feature>/<module>.spec.ts"
|
|
454
|
+
enforcement:
|
|
455
|
+
type: enum
|
|
456
|
+
values: [advisory, required]
|
|
457
|
+
default: advisory
|
|
458
|
+
notes:
|
|
459
|
+
type: string
|
|
460
|
+
required: false
|
|
461
|
+
|
|
462
|
+
conventions_provenance:
|
|
463
|
+
type: object
|
|
464
|
+
required: false
|
|
465
|
+
validation: INFO
|
|
466
|
+
description: Provenance for conventions derived from git history or curated examples
|
|
467
|
+
properties:
|
|
468
|
+
source:
|
|
469
|
+
type: enum
|
|
470
|
+
values: [manual, git-history, mixed]
|
|
471
|
+
default: manual
|
|
472
|
+
|
|
473
|
+
git:
|
|
474
|
+
type: object
|
|
475
|
+
required: false
|
|
476
|
+
properties:
|
|
477
|
+
range:
|
|
478
|
+
type: string
|
|
479
|
+
required: false
|
|
480
|
+
description: Commit range used (e.g., "HEAD~200..HEAD" or "<sha>..<sha>")
|
|
481
|
+
since:
|
|
482
|
+
type: string
|
|
483
|
+
required: false
|
|
484
|
+
description: Optional time boundary (e.g., "6 months ago")
|
|
485
|
+
author:
|
|
486
|
+
type: string
|
|
487
|
+
required: false
|
|
488
|
+
description: Optional author filter (avoid personal identifiers where possible)
|
|
489
|
+
include_paths:
|
|
490
|
+
type: array[string]
|
|
491
|
+
required: false
|
|
492
|
+
exclude_paths:
|
|
493
|
+
type: array[string]
|
|
494
|
+
required: false
|
|
495
|
+
notes:
|
|
496
|
+
type: string
|
|
497
|
+
required: false
|
|
498
|
+
|
|
499
|
+
reviewed_by:
|
|
500
|
+
type: string
|
|
501
|
+
required: false
|
|
502
|
+
reviewed_date:
|
|
503
|
+
type: date
|
|
504
|
+
required: false
|
|
505
|
+
description: Date the provenance details were reviewed
|
|
506
|
+
|
|
507
|
+
security_posture:
|
|
508
|
+
type: object
|
|
509
|
+
required: false
|
|
510
|
+
validation: INFO
|
|
511
|
+
description: Machine-readable security posture and review gates for agentic work
|
|
512
|
+
properties:
|
|
513
|
+
risk_profile:
|
|
514
|
+
type: enum
|
|
515
|
+
values: [low, medium, high, critical]
|
|
516
|
+
default: medium
|
|
517
|
+
description: Overall security sensitivity of the repo/service
|
|
518
|
+
|
|
519
|
+
threat_model_ref:
|
|
520
|
+
type: string
|
|
521
|
+
required: false
|
|
522
|
+
description: Path to the canonical threat model doc
|
|
523
|
+
example: ".agents/contexts/security/THREAT_MODEL.md"
|
|
524
|
+
|
|
525
|
+
secrets_policy_ref:
|
|
526
|
+
type: string
|
|
527
|
+
required: false
|
|
528
|
+
description: Path to the canonical secrets handling policy
|
|
529
|
+
example: ".agents/contexts/security/SECRETS_POLICY.md"
|
|
530
|
+
|
|
531
|
+
dependency_policy_ref:
|
|
532
|
+
type: string
|
|
533
|
+
required: false
|
|
534
|
+
description: Path to dependency/supply-chain policy
|
|
535
|
+
example: ".agents/contexts/security/DEPENDENCY_POLICY.md"
|
|
536
|
+
|
|
537
|
+
supply_chain:
|
|
538
|
+
type: object
|
|
539
|
+
required: false
|
|
540
|
+
description: Optional supply-chain controls (SBOM, provenance)
|
|
541
|
+
properties:
|
|
542
|
+
sbom_required:
|
|
543
|
+
type: boolean
|
|
544
|
+
default: false
|
|
545
|
+
slsa_target:
|
|
546
|
+
type: string
|
|
547
|
+
required: false
|
|
548
|
+
description: Target SLSA level/track (if applicable)
|
|
549
|
+
example: "SLSA3"
|
|
550
|
+
|
|
551
|
+
protected_paths:
|
|
552
|
+
type: array[string]
|
|
553
|
+
required: false
|
|
554
|
+
description: Glob patterns requiring human review/approval
|
|
555
|
+
example:
|
|
556
|
+
- ".github/workflows/**"
|
|
557
|
+
- "infra/**"
|
|
558
|
+
- "terraform/**"
|
|
559
|
+
- "k8s/**"
|
|
560
|
+
|
|
561
|
+
notes:
|
|
562
|
+
type: string
|
|
563
|
+
required: false
|
|
564
|
+
|
|
565
|
+
sources:
|
|
566
|
+
type: array[object]
|
|
567
|
+
required: false
|
|
568
|
+
validation: INFO
|
|
569
|
+
description: |
|
|
570
|
+
Source list supporting the document (required for research reports).
|
|
571
|
+
Used for auditability, citations, and RAG metadata.
|
|
572
|
+
item_properties:
|
|
573
|
+
source_id:
|
|
574
|
+
type: string
|
|
575
|
+
pattern: '^src:[a-z0-9][a-z0-9-_]{2,64}$'
|
|
576
|
+
example: "src:openai-rag-help"
|
|
577
|
+
title:
|
|
578
|
+
type: string
|
|
579
|
+
kind:
|
|
580
|
+
type: enum
|
|
581
|
+
values: [web, pdf, paper, book, repo, issue, dataset, internal, other]
|
|
582
|
+
url:
|
|
583
|
+
type: string
|
|
584
|
+
description: Canonical URL (if external)
|
|
585
|
+
path:
|
|
586
|
+
type: string
|
|
587
|
+
description: Local repo path to stored snapshot/notes (if any)
|
|
588
|
+
example: ".agents/sources/external/openai-rag-help.md"
|
|
589
|
+
publisher:
|
|
590
|
+
type: string
|
|
591
|
+
authors:
|
|
592
|
+
type: array[string]
|
|
593
|
+
published_date:
|
|
594
|
+
type: date
|
|
595
|
+
accessed_date:
|
|
596
|
+
type: date
|
|
597
|
+
license:
|
|
598
|
+
type: string
|
|
599
|
+
description: License or usage note (if known)
|
|
600
|
+
checksum_sha256:
|
|
601
|
+
type: string
|
|
602
|
+
description: SHA-256 of stored snapshot (if stored)
|
|
603
|
+
notes:
|
|
604
|
+
type: string
|
|
605
|
+
|
|
606
|
+
research:
|
|
607
|
+
type: object
|
|
608
|
+
required: false
|
|
609
|
+
validation: INFO
|
|
610
|
+
description: Research metadata (required when category=research-report)
|
|
611
|
+
properties:
|
|
612
|
+
question:
|
|
613
|
+
type: string
|
|
614
|
+
description: Primary research question
|
|
615
|
+
scope:
|
|
616
|
+
type: string
|
|
617
|
+
description: Boundaries (what is and isn't covered)
|
|
618
|
+
method:
|
|
619
|
+
type: array[string]
|
|
620
|
+
description: Methods used (e.g., web search, reading RFCs, experiments)
|
|
621
|
+
findings:
|
|
622
|
+
type: array[object]
|
|
623
|
+
description: Key findings with optional evidence pointers
|
|
624
|
+
item_properties:
|
|
625
|
+
finding:
|
|
626
|
+
type: string
|
|
627
|
+
confidence:
|
|
628
|
+
type: enum
|
|
629
|
+
values: [high, medium, low]
|
|
630
|
+
default: medium
|
|
631
|
+
evidence:
|
|
632
|
+
type: array[object]
|
|
633
|
+
item_properties:
|
|
634
|
+
source_id:
|
|
635
|
+
type: string
|
|
636
|
+
locator:
|
|
637
|
+
type: string
|
|
638
|
+
description: Section/page/paragraph identifier
|
|
639
|
+
quote:
|
|
640
|
+
type: string
|
|
641
|
+
description: Short excerpt (keep brief for copyright)
|
|
642
|
+
open_questions:
|
|
643
|
+
type: array[string]
|
|
644
|
+
next_steps:
|
|
645
|
+
type: array[string]
|
|
646
|
+
|
|
647
|
+
rag:
|
|
648
|
+
type: object
|
|
649
|
+
required: false
|
|
650
|
+
validation: INFO
|
|
651
|
+
description: Optional overrides for RAG ingestion/indexing
|
|
652
|
+
properties:
|
|
653
|
+
collection:
|
|
654
|
+
type: string
|
|
655
|
+
description: Target collection/index name
|
|
656
|
+
example: "engineering"
|
|
657
|
+
include:
|
|
658
|
+
type: boolean
|
|
659
|
+
default: true
|
|
660
|
+
description: Whether to include in RAG indexing
|
|
661
|
+
chunking_override:
|
|
662
|
+
type: object
|
|
663
|
+
description: Overrides retrieval_hints for ingestion time
|
|
664
|
+
properties:
|
|
665
|
+
chunk_size:
|
|
666
|
+
type: integer
|
|
667
|
+
chunk_overlap:
|
|
668
|
+
type: integer
|
|
669
|
+
|
|
670
|
+
# =============================================================================
|
|
671
|
+
# CROSS-PLATFORM COMPATIBILITY (v2.4)
|
|
672
|
+
# =============================================================================
|
|
673
|
+
|
|
674
|
+
agents_md_compatible:
|
|
675
|
+
type: boolean
|
|
676
|
+
required: false
|
|
677
|
+
default: true
|
|
678
|
+
description: |
|
|
679
|
+
Document follows AGENTS.md conventions for cross-platform
|
|
680
|
+
AI agent compatibility (Copilot, Codex, Gemini, Cursor, etc.)
|
|
681
|
+
|
|
682
|
+
cross_platform_aliases:
|
|
683
|
+
type: array[string]
|
|
684
|
+
required: false
|
|
685
|
+
description: Alternative filenames for discovery
|
|
686
|
+
example: ["CLAUDE.md", "GEMINI.md", "AGENT.md", "COPILOT.md"]
|
|
687
|
+
|
|
688
|
+
# =============================================================================
|
|
689
|
+
# MCP - MODEL CONTEXT PROTOCOL (v2.4)
|
|
690
|
+
# =============================================================================
|
|
691
|
+
|
|
692
|
+
mcp_resource:
|
|
693
|
+
type: object
|
|
694
|
+
required: false
|
|
695
|
+
description: MCP resource metadata for tool/data integration
|
|
696
|
+
properties:
|
|
697
|
+
uri:
|
|
698
|
+
type: string
|
|
699
|
+
description: MCP resource URI
|
|
700
|
+
pattern: '^mcp://[a-z0-9-]+/[a-z0-9-/]+$'
|
|
701
|
+
example: "mcp://payment-gateway/transactions"
|
|
702
|
+
mime_type:
|
|
703
|
+
type: string
|
|
704
|
+
example: "application/json"
|
|
705
|
+
capabilities:
|
|
706
|
+
type: array[enum]
|
|
707
|
+
values: [tools, resources, prompts, sampling]
|
|
708
|
+
auth_type:
|
|
709
|
+
type: enum
|
|
710
|
+
values: [none, bearer, oauth2, api_key]
|
|
711
|
+
discovery_endpoint:
|
|
712
|
+
type: string
|
|
713
|
+
description: OAuth 2.1 discovery URL
|
|
714
|
+
|
|
715
|
+
mcp_tools:
|
|
716
|
+
type: array[object]
|
|
717
|
+
required: false
|
|
718
|
+
description: Tools exposed via MCP
|
|
719
|
+
item_properties:
|
|
720
|
+
name:
|
|
721
|
+
type: string
|
|
722
|
+
example: "getTransaction"
|
|
723
|
+
description:
|
|
724
|
+
type: string
|
|
725
|
+
parameters:
|
|
726
|
+
type: object
|
|
727
|
+
description: JSON Schema for parameters
|
|
728
|
+
|
|
729
|
+
# =============================================================================
|
|
730
|
+
# A2A - AGENT-TO-AGENT PROTOCOL (v2.4)
|
|
731
|
+
# =============================================================================
|
|
732
|
+
|
|
733
|
+
agent_card:
|
|
734
|
+
type: object
|
|
735
|
+
required: false
|
|
736
|
+
description: A2A AgentCard for agent discovery
|
|
737
|
+
properties:
|
|
738
|
+
agent_name:
|
|
739
|
+
type: string
|
|
740
|
+
example: "Payment Processor Agent"
|
|
741
|
+
agent_id:
|
|
742
|
+
type: string
|
|
743
|
+
pattern: '^[a-z0-9-]+$'
|
|
744
|
+
example: "payment-processor-v1"
|
|
745
|
+
skills:
|
|
746
|
+
type: array[string]
|
|
747
|
+
example: ["process-payment", "handle-refund"]
|
|
748
|
+
supported_modalities:
|
|
749
|
+
type: array[enum]
|
|
750
|
+
values: [text, structured-data, audio, video, file]
|
|
751
|
+
default: [text, structured-data]
|
|
752
|
+
auth_schemes:
|
|
753
|
+
type: array[enum]
|
|
754
|
+
values: [bearer, oauth2, api_key, mtls]
|
|
755
|
+
well_known_path:
|
|
756
|
+
type: string
|
|
757
|
+
default: "/.well-known/agent.json"
|
|
758
|
+
|
|
759
|
+
# =============================================================================
|
|
760
|
+
# OASF - OPEN AGENTIC SCHEMA FRAMEWORK (v2.4)
|
|
761
|
+
# =============================================================================
|
|
762
|
+
|
|
763
|
+
oasf_skills:
|
|
764
|
+
type: array[string]
|
|
765
|
+
required: false
|
|
766
|
+
description: |
|
|
767
|
+
Skills from OASF taxonomy (category/skill_name format)
|
|
768
|
+
Reference: https://schema.oasf.outshift.com/
|
|
769
|
+
example:
|
|
770
|
+
- "code_generation/source_code_generation"
|
|
771
|
+
- "natural_language_processing/semantic_understanding"
|
|
772
|
+
common_values:
|
|
773
|
+
- "natural_language_processing/contextual_comprehension"
|
|
774
|
+
- "natural_language_processing/semantic_understanding"
|
|
775
|
+
- "natural_language_processing/entity_recognition"
|
|
776
|
+
- "code_generation/source_code_generation"
|
|
777
|
+
- "code_generation/code_review"
|
|
778
|
+
- "code_generation/test_generation"
|
|
779
|
+
- "data_engineering/data_transformation_pipeline"
|
|
780
|
+
- "agent_orchestration/task_delegation"
|
|
781
|
+
- "agent_orchestration/multi_agent_planning"
|
|
782
|
+
- "evaluation_monitoring/output_evaluation"
|
|
783
|
+
- "evaluation_monitoring/performance_monitoring"
|
|
784
|
+
|
|
785
|
+
oasf_domains:
|
|
786
|
+
type: array[string]
|
|
787
|
+
required: false
|
|
788
|
+
description: |
|
|
789
|
+
Domains from OASF taxonomy (category/domain_name format)
|
|
790
|
+
example:
|
|
791
|
+
- "technology/software_development"
|
|
792
|
+
- "finance_and_business/payment_services"
|
|
793
|
+
common_values:
|
|
794
|
+
- "technology/software_development"
|
|
795
|
+
- "technology/cloud_computing"
|
|
796
|
+
- "technology/data_science"
|
|
797
|
+
- "technology/cybersecurity"
|
|
798
|
+
- "finance_and_business/payment_services"
|
|
799
|
+
- "finance_and_business/financial_analysis"
|
|
800
|
+
- "healthcare/clinical_services"
|
|
801
|
+
|
|
802
|
+
oasf_record_id:
|
|
803
|
+
type: string
|
|
804
|
+
required: false
|
|
805
|
+
description: OASF record identifier
|
|
806
|
+
pattern: '^oasf:[a-z0-9-]+:[a-z0-9.-]+$'
|
|
807
|
+
example: "oasf:payment-gateway:v1.0.0"
|
|
808
|
+
|
|
809
|
+
# =============================================================================
|
|
810
|
+
# OPENTELEMETRY GENAI SEMANTIC CONVENTIONS (v2.4)
|
|
811
|
+
# =============================================================================
|
|
812
|
+
|
|
813
|
+
observability:
|
|
814
|
+
type: object
|
|
815
|
+
required: false
|
|
816
|
+
description: OpenTelemetry GenAI attributes
|
|
817
|
+
properties:
|
|
818
|
+
otel_service_name:
|
|
819
|
+
type: string
|
|
820
|
+
description: service.name attribute
|
|
821
|
+
example: "payment-gateway"
|
|
822
|
+
gen_ai_agent_name:
|
|
823
|
+
type: string
|
|
824
|
+
description: gen_ai.agent.name attribute
|
|
825
|
+
gen_ai_agent_id:
|
|
826
|
+
type: string
|
|
827
|
+
description: gen_ai.agent.id attribute
|
|
828
|
+
gen_ai_provider:
|
|
829
|
+
type: enum
|
|
830
|
+
values: [anthropic, openai, aws.bedrock, azure.openai, google.vertex]
|
|
831
|
+
custom_attributes:
|
|
832
|
+
type: object
|
|
833
|
+
description: Additional OTel attributes
|
|
834
|
+
example:
|
|
835
|
+
deployment.environment: "production"
|
|
836
|
+
service.version: "1.2.0"
|
|
837
|
+
|
|
838
|
+
metrics:
|
|
839
|
+
type: array[string]
|
|
840
|
+
required: false
|
|
841
|
+
description: OTel metrics reported
|
|
842
|
+
common_values:
|
|
843
|
+
- "gen_ai.client.token.usage"
|
|
844
|
+
- "gen_ai.client.operation.duration"
|
|
845
|
+
- "gen_ai.server.request.duration"
|
|
846
|
+
- "gen_ai.server.time_to_first_token"
|
|
847
|
+
|
|
848
|
+
# =============================================================================
|
|
849
|
+
# CONTEXT ENGINEERING (v2.4)
|
|
850
|
+
# =============================================================================
|
|
851
|
+
|
|
852
|
+
context_budget:
|
|
853
|
+
type: object
|
|
854
|
+
required: false
|
|
855
|
+
description: Token budgeting for context management
|
|
856
|
+
properties:
|
|
857
|
+
full_tokens:
|
|
858
|
+
type: integer
|
|
859
|
+
description: Tokens for complete document
|
|
860
|
+
example: 2500
|
|
861
|
+
summary_tokens:
|
|
862
|
+
type: integer
|
|
863
|
+
description: Tokens for metadata only
|
|
864
|
+
example: 150
|
|
865
|
+
min_useful_tokens:
|
|
866
|
+
type: integer
|
|
867
|
+
description: Minimum for useful context
|
|
868
|
+
example: 500
|
|
869
|
+
|
|
870
|
+
progressive_disclosure:
|
|
871
|
+
type: object
|
|
872
|
+
required: false
|
|
873
|
+
description: Staged content loading
|
|
874
|
+
properties:
|
|
875
|
+
level_1:
|
|
876
|
+
type: array[string]
|
|
877
|
+
description: Always load (metadata)
|
|
878
|
+
default: [title, description, category, status]
|
|
879
|
+
level_2:
|
|
880
|
+
type: array[string]
|
|
881
|
+
description: Load on relevance match
|
|
882
|
+
example: [overview, architecture, key_concepts]
|
|
883
|
+
level_3:
|
|
884
|
+
type: array[string]
|
|
885
|
+
description: Load on explicit request
|
|
886
|
+
example: [full_content, code_examples, troubleshooting]
|
|
887
|
+
|
|
888
|
+
retrieval_hints:
|
|
889
|
+
type: object
|
|
890
|
+
required: false
|
|
891
|
+
description: RAG optimization hints
|
|
892
|
+
properties:
|
|
893
|
+
chunk_size:
|
|
894
|
+
type: integer
|
|
895
|
+
description: Recommended chunk size (tokens)
|
|
896
|
+
default: 500
|
|
897
|
+
chunk_overlap:
|
|
898
|
+
type: integer
|
|
899
|
+
description: Token overlap between chunks
|
|
900
|
+
default: 50
|
|
901
|
+
key_sections:
|
|
902
|
+
type: array[string]
|
|
903
|
+
description: High-value sections
|
|
904
|
+
example: [overview, api-endpoints, configuration]
|
|
905
|
+
semantic_anchors:
|
|
906
|
+
type: array[string]
|
|
907
|
+
description: Key phrases for semantic search
|
|
908
|
+
example: ["payment processing", "Stripe integration"]
|
|
909
|
+
exclude_from_retrieval:
|
|
910
|
+
type: array[string]
|
|
911
|
+
description: Sections to exclude
|
|
912
|
+
example: [changelog, appendix, references]
|
|
913
|
+
|
|
914
|
+
# =============================================================================
|
|
915
|
+
# AGENT NOTES (Enhanced in v2.4)
|
|
916
|
+
# =============================================================================
|
|
917
|
+
|
|
918
|
+
agent_notes:
|
|
919
|
+
type: object
|
|
920
|
+
required: false
|
|
921
|
+
description: Machine-readable hints for AI agents
|
|
922
|
+
properties:
|
|
923
|
+
# Core (from v2.3)
|
|
924
|
+
confidence:
|
|
925
|
+
type: enum
|
|
926
|
+
values: [high, medium, low]
|
|
927
|
+
default: medium
|
|
928
|
+
safe_for_codegen:
|
|
929
|
+
type: boolean
|
|
930
|
+
default: false
|
|
931
|
+
requires_human_review:
|
|
932
|
+
type: boolean
|
|
933
|
+
default: true
|
|
934
|
+
|
|
935
|
+
# Enhanced (v2.4)
|
|
936
|
+
embedding_hint:
|
|
937
|
+
type: string
|
|
938
|
+
description: Alternative text for embedding generation
|
|
939
|
+
example: "Payment gateway for .NET 9 with Stripe"
|
|
940
|
+
tool_hints:
|
|
941
|
+
type: array[string]
|
|
942
|
+
description: Suggested tools for this document
|
|
943
|
+
example: ["code-search", "api-tester", "database-query"]
|
|
944
|
+
agent_capabilities_required:
|
|
945
|
+
type: array[string]
|
|
946
|
+
description: Capabilities needed to use effectively
|
|
947
|
+
example: ["code-execution", "web-fetch", "file-write"]
|
|
948
|
+
max_context_window:
|
|
949
|
+
type: integer
|
|
950
|
+
description: Minimum context window required (tokens)
|
|
951
|
+
example: 8000
|
|
952
|
+
|
|
953
|
+
# =============================================================================
|
|
954
|
+
# TIE-BREAKER RULES
|
|
955
|
+
# =============================================================================
|
|
956
|
+
|
|
957
|
+
tie_breaker_rules:
|
|
958
|
+
- order: 1
|
|
959
|
+
field: status
|
|
960
|
+
direction: "active > deprecated > sunset > draft"
|
|
961
|
+
description: "Active documents always win"
|
|
962
|
+
|
|
963
|
+
- order: 2
|
|
964
|
+
field: last_verified
|
|
965
|
+
direction: desc
|
|
966
|
+
description: "More recently verified wins"
|
|
967
|
+
|
|
968
|
+
- order: 3
|
|
969
|
+
field: retrieval_scope
|
|
970
|
+
direction: "service > skill > global"
|
|
971
|
+
description: "More specific scope wins"
|
|
972
|
+
|
|
973
|
+
- order: 4
|
|
974
|
+
field: retrieval_priority
|
|
975
|
+
direction: "critical > high > medium > low"
|
|
976
|
+
description: "Higher priority wins"
|
|
977
|
+
|
|
978
|
+
- order: 5
|
|
979
|
+
field: path_depth
|
|
980
|
+
direction: desc
|
|
981
|
+
description: "Deeper paths win"
|
|
982
|
+
|
|
983
|
+
- order: 6
|
|
984
|
+
field: filename
|
|
985
|
+
direction: asc
|
|
986
|
+
description: "Alphabetical as final tie-breaker"
|
|
987
|
+
|
|
988
|
+
# =============================================================================
|
|
989
|
+
# VALIDATION RULES
|
|
990
|
+
# =============================================================================
|
|
991
|
+
|
|
992
|
+
validation_rules:
|
|
993
|
+
# Required field rules
|
|
994
|
+
- id: SCHEMA_001
|
|
995
|
+
severity: ERROR
|
|
996
|
+
rule: "schema_version must be present and valid"
|
|
997
|
+
check: "frontmatter.schema_version matches ^\\d+\\.\\d+$"
|
|
998
|
+
|
|
999
|
+
- id: SCHEMA_002
|
|
1000
|
+
severity: ERROR
|
|
1001
|
+
rule: "Major schema version must not exceed supported"
|
|
1002
|
+
check: "parseInt(schema_version.split('.')[0]) <= AGENT_MAX_MAJOR_VERSION"
|
|
1003
|
+
|
|
1004
|
+
- id: REQUIRED_001
|
|
1005
|
+
severity: ERROR
|
|
1006
|
+
rule: "Required fields must be present"
|
|
1007
|
+
fields: [schema_version, title, category, status, last_updated]
|
|
1008
|
+
|
|
1009
|
+
- id: ENUM_001
|
|
1010
|
+
severity: ERROR
|
|
1011
|
+
rule: "Enum fields must use defined values"
|
|
1012
|
+
|
|
1013
|
+
# Recommended field rules
|
|
1014
|
+
- id: RECOMMENDED_001
|
|
1015
|
+
severity: WARNING
|
|
1016
|
+
rule: "Recommended fields should be present"
|
|
1017
|
+
fields: [version, retrieval_priority, retrieval_scope, last_verified, owner]
|
|
1018
|
+
|
|
1019
|
+
- id: DATE_001
|
|
1020
|
+
severity: WARNING
|
|
1021
|
+
rule: "Dates should be valid ISO-8601"
|
|
1022
|
+
check: "date fields match YYYY-MM-DD"
|
|
1023
|
+
|
|
1024
|
+
- id: VERIFIED_001
|
|
1025
|
+
severity: WARNING
|
|
1026
|
+
rule: "Active documents should have recent verification"
|
|
1027
|
+
check: "if status=active, last_verified within 90 days"
|
|
1028
|
+
|
|
1029
|
+
- id: DEPRECATED_001
|
|
1030
|
+
severity: WARNING
|
|
1031
|
+
rule: "Deprecated documents should specify replacement"
|
|
1032
|
+
check: "if status=deprecated, superseded_by should be set"
|
|
1033
|
+
|
|
1034
|
+
# v2.4 specific rules
|
|
1035
|
+
- id: MCP_001
|
|
1036
|
+
severity: INFO
|
|
1037
|
+
rule: "MCP URIs should use valid format"
|
|
1038
|
+
check: "mcp_resource.uri matches ^mcp://[a-z0-9-]+/[a-z0-9-/]+$"
|
|
1039
|
+
|
|
1040
|
+
- id: OASF_001
|
|
1041
|
+
severity: INFO
|
|
1042
|
+
rule: "OASF skills should use category/skill format"
|
|
1043
|
+
check: "oasf_skills items contain '/'"
|
|
1044
|
+
|
|
1045
|
+
- id: CONTEXT_001
|
|
1046
|
+
severity: INFO
|
|
1047
|
+
rule: "Context budget should be consistent"
|
|
1048
|
+
check: "summary_tokens < full_tokens"
|
|
1049
|
+
|
|
1050
|
+
- id: CODEGEN_001
|
|
1051
|
+
severity: INFO
|
|
1052
|
+
rule: "Codegen-safe documents should have high confidence"
|
|
1053
|
+
check: "if safe_for_codegen=true, confidence=high"
|
|
1054
|
+
|
|
1055
|
+
- id: SKILL_001
|
|
1056
|
+
severity: WARNING
|
|
1057
|
+
rule: "Skill documents should include a stable `name` for cross-tool skill loaders (Codex)."
|
|
1058
|
+
check: "if category=skill, name should be set"
|
|
1059
|
+
|
|
1060
|
+
|
|
1061
|
+
# v2.4.3 specific rules
|
|
1062
|
+
- id: SOURCES_001
|
|
1063
|
+
severity: WARNING
|
|
1064
|
+
rule: "Sources entries must have source_id"
|
|
1065
|
+
check: "if sources present, each sources[].source_id matches ^src:"
|
|
1066
|
+
|
|
1067
|
+
- id: RESEARCH_001
|
|
1068
|
+
severity: WARNING
|
|
1069
|
+
rule: "Research reports should declare research.question and at least one source"
|
|
1070
|
+
check: "if category=research-report, research.question set AND sources length >= 1"
|
|
1071
|
+
|
|
1072
|
+
- id: SOURCE_DOC_001
|
|
1073
|
+
severity: INFO
|
|
1074
|
+
rule: "Source documents should include at least one sources entry"
|
|
1075
|
+
check: "if category=source-document, sources length >= 1"
|
|
1076
|
+
|
|
1077
|
+
- id: RAG_001
|
|
1078
|
+
severity: WARNING
|
|
1079
|
+
rule: "Documents containing secrets must not be indexed for RAG"
|
|
1080
|
+
check: "if data_handling.contains_secrets=true, rag.include=false AND data_handling.rag_allowed=false"
|