aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
426 lines (327 loc) • 11.6 kB
Markdown
# Provenance Tracking Rules
**Enforcement Level**: HIGH
**Scope**: All artifact generation (documents, code, agents, commands, skills)
**Version**: 1.0.0
## Overview
These rules enforce W3C PROV-compliant provenance tracking for all AIWG artifacts. Provenance records establish an auditable chain of derivation, enabling reproducibility, attribution, and quality verification.
## W3C PROV Model
AIWG uses the Entity-Activity-Agent model from W3C PROV-DM:
- **Entity** - Artifact (document, code file, test, schema)
- **Activity** - Operation that created/modified the entity (generation, refactoring, testing)
- **Agent** - Who/what performed the activity (Claude agent, human developer, automated tool)
## Mandatory Rules
### Rule 1: Record Provenance for All Generated Artifacts
**FORBIDDEN**:
```bash
# NEVER create artifacts without provenance metadata
echo "# New Document" > new-doc.md
git add new-doc.md
git commit -m "add document"
```
**REQUIRED**:
```yaml
# Create provenance record when generating artifact
# .aiwg/research/provenance/records/new-doc.prov.yaml
entity:
id: "urn:aiwg:artifact:.aiwg/research/provenance/docs/new-doc.md"
type: "document"
created_at: "2026-01-25T19:30:00Z"
activity:
id: "urn:aiwg:activity:generation:new-doc:001"
type: "generation"
started_at: "2026-01-25T19:29:45Z"
ended_at: "2026-01-25T19:30:00Z"
agent:
id: "urn:aiwg:agent:claude-sonnet-4.5"
type: "ai_assistant"
version: "claude-sonnet-4-6"
relationships:
wasGeneratedBy:
entity: "urn:aiwg:artifact:.aiwg/research/provenance/docs/new-doc.md"
activity: "urn:aiwg:activity:generation:new-doc:001"
```
### Rule 2: Use @-Mentions to Record wasDerivedFrom Relationships
**FORBIDDEN**:
```markdown
# Implementation Guide
This guide explains the implementation.
## Overview
The system works by...
```
**REQUIRED**:
```markdown
# Implementation Guide
This guide explains the implementation.
## References
- @.aiwg/requirements/use-cases/UC-104-provenance.md - Source requirement
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml - Schema specification
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/rules/mention-wiring.md - Wiring conventions
## Overview
The system works by...
```
### Rule 3: Bidirectional Provenance Chains
When creating derived artifacts, record BOTH forward and backward references.
**FORBIDDEN**:
```typescript
// src/provenance/tracker.ts
// Implementation of provenance tracking
export class ProvenanceTracker {
// ... code ...
}
```
**REQUIRED**:
```typescript
/**
* Provenance tracking implementation
*
* @implements @.aiwg/requirements/use-cases/UC-104-provenance.md
* @schema @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml
* @tests @test/unit/provenance/tracker.test.ts
*/
export class ProvenanceTracker {
// ... code ...
}
```
AND update requirement document:
```markdown
## Use Case UC-104: Provenance Tracking
### Implementation
- @$AIWG_ROOT/src/provenance/tracker.ts - Core implementation
- @test/unit/provenance/tracker.test.ts - Test coverage
```
### Rule 4: Record Agent Attribution
Every generated artifact MUST record which agent created it.
**FORBIDDEN**:
```yaml
# No agent attribution
entity:
id: "urn:aiwg:artifact:some-file.md"
type: "document"
```
**REQUIRED**:
```yaml
entity:
id: "urn:aiwg:artifact:some-file.md"
type: "document"
created_at: "2026-01-25T19:30:00Z"
activity:
id: "urn:aiwg:activity:generation:some-file:001"
type: "generation"
agent:
id: "urn:aiwg:agent:software-implementer"
type: "aiwg_agent"
version: "1.0.0"
tool: "claude-sonnet-4.5"
relationships:
wasAssociatedWith:
activity: "urn:aiwg:activity:generation:some-file:001"
agent: "urn:aiwg:agent:software-implementer"
```
### Rule 5: Timestamp All Activities
**FORBIDDEN**:
```yaml
activity:
id: "urn:aiwg:activity:generation:doc:001"
type: "generation"
# Missing timestamps
```
**REQUIRED**:
```yaml
activity:
id: "urn:aiwg:activity:generation:doc:001"
type: "generation"
started_at: "2026-01-25T19:29:45Z"
ended_at: "2026-01-25T19:30:00Z"
duration_seconds: 15
```
### Rule 6: Use URN Schema for IDs
All provenance IDs MUST follow consistent URN format.
**FORBIDDEN**:
```yaml
entity:
id: "some-file.md" # Ambiguous
id: "/full/path/to/file.md" # Machine-specific
id: "123abc" # Opaque
```
**REQUIRED**:
```yaml
entity:
id: "urn:aiwg:artifact:.aiwg/research/provenance/docs/guide.md"
# Format: urn:aiwg:artifact:<project-relative-path>
activity:
id: "urn:aiwg:activity:generation:guide:001"
# Format: urn:aiwg:activity:<type>:<artifact-name>:<sequence>
agent:
id: "urn:aiwg:agent:software-implementer"
# Format: urn:aiwg:agent:<agent-name>
```
### Rule 7: Document Derivation Chains
When an artifact is derived from multiple sources, record ALL sources.
**FORBIDDEN**:
```yaml
# Only records one source
relationships:
wasDerivedFrom:
- source: "urn:aiwg:artifact:.aiwg/requirements/UC-104.md"
```
**REQUIRED**:
```yaml
relationships:
wasDerivedFrom:
- source: "urn:aiwg:artifact:.aiwg/requirements/UC-104.md"
derivation_type: "implements"
- source: "urn:aiwg:artifact:agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml"
derivation_type: "conforms_to"
- source: "urn:aiwg:artifact:.claude/rules/mention-wiring.md"
derivation_type: "follows_pattern"
```
## Artifact Type Requirements
### For Documents (.md, .yaml, .json)
**Required elements**:
1. References section with @-mentions
2. Creation timestamp in frontmatter (if applicable)
3. Provenance record in `.aiwg/research/provenance/records/`
**Example frontmatter**:
```yaml
created: 2026-01-25T19:30:00Z
created_by: urn:aiwg:agent:software-implementer
derived_from:
- .aiwg/requirements/use-cases/UC-104-provenance.md
- agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml
```
### For Code Files (.ts, .js, .py)
**Required elements**:
1. File header with @-mentions
2. Provenance record in `.aiwg/research/provenance/records/`
**Example header**:
```typescript
/**
* @file ProvenanceTracker.ts
* @implements @.aiwg/requirements/use-cases/UC-104-provenance.md
* @schema @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml
* @tests @test/unit/provenance/tracker.test.ts
* @created 2026-01-25T19:30:00Z
* @agent urn:aiwg:agent:software-implementer
*/
```
### For Test Files
**Required elements**:
1. Test header with @source reference
2. Provenance record linking to implementation
**Example**:
```typescript
/**
* @file ProvenanceTracker.test.ts
* @source @$AIWG_ROOT/src/provenance/tracker.ts
* @requirement @.aiwg/requirements/use-cases/UC-104-provenance.md
* @created 2026-01-25T19:31:00Z
* @agent urn:aiwg:agent:test-engineer
*/
```
### For Agent Definitions
**Required elements**:
1. References section
2. Creation metadata
3. Capability derivation chain
**Example**:
```markdown
## Metadata
- **Created**: 2026-01-25T19:30:00Z
- **Agent Type**: aiwg_agent
- **Version**: 1.0.0
## References
- @.aiwg/requirements/use-cases/UC-XXX.md - Primary use case
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/rules/provenance-tracking.md - Provenance requirements
```
## Provenance Record Location
All provenance records stored in:
```
.aiwg/research/provenance/records/
```
Naming convention:
```
<artifact-name>.prov.yaml
```
Examples:
```
.aiwg/research/provenance/records/
├── provenance-guide.prov.yaml
├── prov-record-schema.prov.yaml
├── tracker-implementation.prov.yaml
└── artifact-creation-example.prov.yaml
```
## Validation Checklist
Before completing artifact generation:
- [ ] Provenance record created in `.aiwg/research/provenance/records/`
- [ ] Entity ID uses correct URN format
- [ ] Activity timestamps recorded (started_at, ended_at)
- [ ] Agent attribution included
- [ ] wasDerivedFrom relationships documented
- [ ] @-mentions in artifact content match provenance record
- [ ] Bidirectional links established (forward and backward)
- [ ] All source artifacts referenced
- [ ] Derivation types specified (implements, conforms_to, follows_pattern)
## Derivation Type Vocabulary
Use these standard derivation types:
| Type | Meaning | Example |
|------|---------|---------|
| `implements` | Code implements requirement | `src/auth.ts` implements `UC-001-auth.md` |
| `conforms_to` | Artifact follows schema | `record.yaml` conforms to `schema.yaml` |
| `follows_pattern` | Artifact uses template | `agent.md` follows `agent-template.md` |
| `extends` | Artifact extends base | `advanced-agent.md` extends `base-agent.md` |
| `tests` | Test verifies code | `auth.test.ts` tests `auth.ts` |
| `documents` | Documentation describes code | `api-doc.md` documents `api.ts` |
| `refines` | Artifact refines earlier version | `v2-spec.md` refines `v1-spec.md` |
| `derives_from` | General derivation | Generic when specific type unclear |
## Activity Type Vocabulary
Use these standard activity types:
| Type | Description | Example |
|------|-------------|---------|
| `generation` | New artifact created | First creation of document |
| `modification` | Existing artifact updated | Editing existing file |
| `refactoring` | Code restructured | Rename, reorganize |
| `testing` | Tests written/executed | Creating test file |
| `review` | Artifact reviewed | Code review, quality check |
| `merge` | Artifacts combined | Merging branches |
| `derivation` | Derived from sources | Creating from template |
| `validation` | Artifact validated | Schema validation |
## Agent Type Vocabulary
Use these standard agent types:
| Type | Description | Example |
|------|-------------|---------|
| `ai_assistant` | Base LLM (Claude, GPT) | `claude-sonnet-4.5` |
| `aiwg_agent` | AIWG specialized agent | `software-implementer` |
| `human` | Human developer | `developer@example.com` |
| `automated_tool` | Script or CLI tool | `eslint`, `prettier` |
| `ci_system` | CI/CD pipeline | `github-actions` |
## Enforcement
These rules are enforced:
1. **At artifact creation time** - Generate provenance record with artifact
2. **At code review time** - Verify provenance records exist
3. **At audit time** - Validate provenance chains are complete
4. **At release time** - Ensure all artifacts have provenance
## Exceptions
Exceptions to provenance tracking (must document reason):
1. **Temporary files** - Files in `.aiwg/working/` or `/tmp`
2. **Generated outputs** - Auto-generated from provenance-tracked sources
3. **External dependencies** - Third-party code (track at integration point)
All exceptions MUST be documented in `.aiwg/research/provenance/docs/exceptions.md`
## References
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml - PROV record schema
- @.aiwg/research/provenance/docs/provenance-guide.md - Detailed guidance
- @.aiwg/research/provenance/examples/artifact-creation.yaml - Example record
- @$AIWG_ROOT/agentic/code/frameworks/sdlc-complete/rules/mention-wiring.md - @-mention wiring patterns
- @https://www.w3.org/TR/prov-dm/ - W3C PROV-DM specification
## Questions
If unsure about provenance tracking:
1. Consult @.aiwg/research/provenance/docs/provenance-guide.md
2. Review examples in `.aiwg/research/provenance/examples/`
3. Check W3C PROV-DM specification for standard patterns
4. Default to recording MORE provenance rather than less
5. When in doubt, ask before proceeding
**Rule Status**: ACTIVE
**Last Updated**: 2026-01-25
**Issue**: #104