UNPKG

aiwg

Version:

Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.

107 lines (85 loc) 3.12 kB
# post-write-provenance Auto-create or update provenance records after artifact generation or modification. ## Trigger - Agent writes to `.aiwg/**/*.md` or `.aiwg/**/*.yaml` (artifact directories) - Agent writes to `src/**/*.ts` or `src/**/*.js` (source code) - Agent writes to `test/**/*.ts` or `test/**/*.js` (test files) ## Enforcement Level **WARN** - Creates provenance record automatically; warns if record creation fails. ## Behavior When triggered: 1. **Determine operation type**: - If file is new: activity type = `generation` - If file existed: activity type = `modification` 2. **Check for existing provenance**: - Look for `.aiwg/research/provenance/records/<artifact-name>.prov.yaml` - If exists: update with new modification activity - If not: create new provenance record 3. **Extract derivation sources**: - Parse @-mentions from written content - Map qualified @-mentions to derivation types - Use generic `derives_from` for unqualified @-mentions 4. **Generate provenance record**: - Entity: file path as URN with SHA-256 content hash - Activity: generation/modification with timestamps - Agent: current agent name and model - Relationships: wasGeneratedBy, wasAssociatedWith, wasDerivedFrom 5. **Save and validate**: - Write record to `.aiwg/research/provenance/records/` - Validate against schema - If validation fails: **WARN** but allow write to proceed ## Record Format ```yaml # Auto-generated provenance record entity: id: "urn:aiwg:artifact:<relative-path>" type: "<document|code|test|schema>" created_at: "<ISO-8601>" content_hash: "sha256:<hash>" activity: id: "urn:aiwg:activity:<type>:<name>:<seq>" type: "<generation|modification>" started_at: "<ISO-8601>" ended_at: "<ISO-8601>" agent: id: "urn:aiwg:agent:<agent-name>" type: "<aiwg_agent|human|automated_tool>" relationships: wasGeneratedBy: entity: "<entity-urn>" activity: "<activity-urn>" wasAssociatedWith: activity: "<activity-urn>" agent: "<agent-urn>" wasDerivedFrom: [] # Populated from @-mentions ``` ## Configuration ```yaml hook: name: post-write-provenance type: post-write enforcement: warn triggers: - pattern: ".aiwg/**/*.md" exclude: ".aiwg/working/**" - pattern: ".aiwg/**/*.yaml" exclude: ".aiwg/research/provenance/records/**" - pattern: "src/**/*.ts" - pattern: "src/**/*.js" - pattern: "test/**/*.ts" - pattern: "test/**/*.js" skip_conditions: - path_match: ".aiwg/working/**" - path_match: ".aiwg/ralph/**" - path_match: ".aiwg/research/provenance/records/**" - path_match: "**/*.prov.yaml" - path_match: "node_modules/**" - path_match: ".git/**" auto_create: true auto_update: true ``` ## References - @agentic/code/frameworks/sdlc-complete/agents/provenance-manager.md - Provenance Manager agent - @agentic/code/frameworks/sdlc-complete/schemas/provenance/prov-record.yaml - PROV record schema - @.claude/rules/provenance-tracking.md - Provenance tracking rules - @.claude/rules/mention-wiring.md - @-mention patterns for derivation