# Template Improvement Directive Schema (v1.2)
# Defines the structure for an object that captures a specific proposed improvement
# to a template, schema, AI skill, or overall process within the framework.
# Order in a list of directives implies sequence of proposal/logging.
directive_object_schema:
directive_id: string # Unique identifier for the directive (e.g., "TID_[ProjectCode]_[SeqNum]"). AI to generate based on context.
target_template_id: string # Base filename of the primary template or definition file targeted for improvement. Can also be "OverallFramework" or a specific process area.
target_section_or_field: string (optional) # Specific section, step number, or schema path within the target_template_id.
issue_description: string # Clear, concise description of the problem, inefficiency, ambiguity, or missing feature identified.
proposed_change_type: string # Enum: "ModifyFieldSchema", "AddFieldSchema", "RemoveFieldSchema", "UpdateInstruction", "AddNewInstructionStep", "RemoveInstructionStep", "ReorderInstructionSteps", "DefineNewSchema", "DefineNewSkill", "ModifySkillDefinition", "UpdateGuidanceAndInternalProtocol", "AddNewFeatureOrGuidance", "UpdateProceduralLogic", "ConsolidateTemplates", "ClarifyDocumentation", "Other".
proposed_change_details: string # Detailed description of the proposed change. This should be specific enough for an AI or human to understand what needs to be implemented. May include example text or pseudo-code.
rationale: string # Justification for the proposed change. Why is this an improvement? What problem does it solve? How does it align with core principles (e.g., AI autonomy, ease of use, robustness)?
source_insight_refs: list of strings (optional) # IDs of `insight_object`s from `project_state.logs.insights`, or references to specific user feedback, issue IDs, or events (e.g., "INS005", "UserFeedback_InteractionXYZ", "ITPR_Event_ABC") that led to this directive.
priority: string (optional) # Enum: "Critical", "High", "Medium", "Low". (User or AI assigned based on impact).
estimated_effort_to_implement: string (optional) # Enum: "Small", "Medium", "Large". (User or AI assigned).
status: string # Enum: "Proposed", "Under Review", "ApprovedForImplementation", "Implemented", "Deferred", "Rejected".
resolution_notes: string (optional) # Notes on why it was implemented, deferred, or rejected. If implemented, may reference commit ID or version where change occurred.
user_provided_date_context: string (optional) # For user to manually note a relevant date if desired; AI does not populate or process this as a date.