@forwardimpact/schema 0.2.0 → 0.3.0

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.
@@ -59,18 +59,6 @@ agent:
59
59
  priority: |
60
60
  Data quality is paramount. Always validate data at ingestion points and
61
61
  document schema assumptions. Treat undocumented schemas with suspicion.
62
- beforeMakingChanges:
63
- - Understand the data sources and their quality characteristics
64
- - Map data lineage and dependencies
65
- - Consider performance implications for downstream consumers
66
- delegation: |
67
- When facing tasks outside your expertise, use `runSubagent` to delegate:
68
- - Statistical analysis or model validation → data science subagent
69
- - Application code changes → software engineering subagent
70
- - Infrastructure or deployment → SRE subagent
71
-
72
- Subagents run in isolated context. Provide clear task descriptions and
73
- specify what information to return.
74
62
  constraints:
75
63
  - Ignoring data quality issues
76
64
  - Creating pipelines without proper error handling
@@ -53,10 +53,6 @@ agent:
53
53
  remove organizational friction.
54
54
 
55
55
  Your role is to support engineering judgment, not replace it.
56
- beforeMakingChanges:
57
- - Consider team dynamics and individual growth
58
- - Think about systemic improvements over individual fixes
59
- - Focus on enabling others rather than doing directly
60
56
  constraints:
61
57
  - Focus on enabling and empowering rather than doing directly
62
58
  - Consider long-term team health over short-term fixes
@@ -59,18 +59,6 @@ agent:
59
59
  Code review is more important than code generation. Every line of code
60
60
  you produce must be understood and verified. Never ship code without
61
61
  comprehensive testing.
62
- beforeMakingChanges:
63
- - Understand the existing architecture and patterns
64
- - Identify test coverage requirements
65
- - Consider backward compatibility implications
66
- delegation: |
67
- When facing tasks outside your expertise, use `runSubagent` to delegate:
68
- - Data modeling or statistical analysis → data science subagent
69
- - Security assessment or threat modeling → research subagent
70
- - Complex debugging across unfamiliar systems → research subagent
71
-
72
- Subagents run in isolated context. Provide clear task descriptions and
73
- specify what information to return.
74
62
  constraints:
75
63
  - Committing code without running tests
76
64
  - Making changes without understanding the existing codebase
@@ -37,11 +37,6 @@ agent:
37
37
 
38
38
  Every API change must consider developer experience. Treat breaking
39
39
  changes with extreme caution—your consumers build on your stability.
40
- beforeMakingChanges:
41
- - Understand the existing architecture and patterns
42
- - Identify test coverage requirements
43
- - Consider backward compatibility implications
44
- - Plan documentation updates
45
40
  constraints:
46
41
  - Maintain backward compatibility
47
42
  - Document breaking changes with migration guides
@@ -36,11 +36,6 @@ agent:
36
36
 
37
37
  Production stability trumps feature velocity. No change ships without
38
38
  understanding its impact on system reliability.
39
- beforeMakingChanges:
40
- - Understand system dependencies and failure modes
41
- - Ensure observability instrumentation is in place
42
- - Consider rollback procedures and blast radius
43
- - Verify runbooks are updated
44
39
  constraints:
45
40
  - Never compromise on observability instrumentation
46
41
  - Document all runbooks and incident response procedures
package/lib/validation.js CHANGED
@@ -750,48 +750,6 @@ function validateDiscipline(
750
750
  );
751
751
  }
752
752
 
753
- // Optional: beforeMakingChanges (array of strings)
754
- if (discipline.agent.beforeMakingChanges !== undefined) {
755
- if (!Array.isArray(discipline.agent.beforeMakingChanges)) {
756
- errors.push(
757
- createError(
758
- "INVALID_VALUE",
759
- "Discipline agent beforeMakingChanges must be an array",
760
- `${agentPath}.beforeMakingChanges`,
761
- discipline.agent.beforeMakingChanges,
762
- ),
763
- );
764
- } else {
765
- discipline.agent.beforeMakingChanges.forEach((item, i) => {
766
- if (typeof item !== "string") {
767
- errors.push(
768
- createError(
769
- "INVALID_VALUE",
770
- "Discipline agent beforeMakingChanges items must be strings",
771
- `${agentPath}.beforeMakingChanges[${i}]`,
772
- item,
773
- ),
774
- );
775
- }
776
- });
777
- }
778
- }
779
-
780
- // Optional: delegation (string)
781
- if (
782
- discipline.agent.delegation !== undefined &&
783
- typeof discipline.agent.delegation !== "string"
784
- ) {
785
- errors.push(
786
- createError(
787
- "INVALID_VALUE",
788
- "Discipline agent delegation must be a string",
789
- `${agentPath}.delegation`,
790
- discipline.agent.delegation,
791
- ),
792
- );
793
- }
794
-
795
753
  // Optional: constraints (array of strings)
796
754
  if (discipline.agent.constraints !== undefined) {
797
755
  if (!Array.isArray(discipline.agent.constraints)) {
@@ -824,7 +782,7 @@ function validateDiscipline(
824
782
  errors.push(
825
783
  createError(
826
784
  "INVALID_FIELD",
827
- "Discipline agent 'coreInstructions' field is not supported. Use identity, priority, beforeMakingChanges, and delegation instead.",
785
+ "Discipline agent 'coreInstructions' field is not supported. Use identity, priority, and constraints instead.",
828
786
  `${agentPath}.coreInstructions`,
829
787
  ),
830
788
  );
@@ -1024,33 +982,6 @@ function validateTrack(
1024
982
  );
1025
983
  }
1026
984
 
1027
- // Optional: beforeMakingChanges (array of strings)
1028
- if (track.agent.beforeMakingChanges !== undefined) {
1029
- if (!Array.isArray(track.agent.beforeMakingChanges)) {
1030
- errors.push(
1031
- createError(
1032
- "INVALID_VALUE",
1033
- "Track agent beforeMakingChanges must be an array",
1034
- `${agentPath}.beforeMakingChanges`,
1035
- track.agent.beforeMakingChanges,
1036
- ),
1037
- );
1038
- } else {
1039
- track.agent.beforeMakingChanges.forEach((item, i) => {
1040
- if (typeof item !== "string") {
1041
- errors.push(
1042
- createError(
1043
- "INVALID_VALUE",
1044
- "Track agent beforeMakingChanges items must be strings",
1045
- `${agentPath}.beforeMakingChanges[${i}]`,
1046
- item,
1047
- ),
1048
- );
1049
- }
1050
- });
1051
- }
1052
- }
1053
-
1054
985
  // Optional: constraints (array of strings)
1055
986
  if (track.agent.constraints !== undefined) {
1056
987
  if (!Array.isArray(track.agent.constraints)) {
@@ -1083,7 +1014,7 @@ function validateTrack(
1083
1014
  errors.push(
1084
1015
  createError(
1085
1016
  "INVALID_FIELD",
1086
- "Track agent 'coreInstructions' field is not supported. Use identity, priority, beforeMakingChanges, and constraints instead.",
1017
+ "Track agent 'coreInstructions' field is not supported. Use identity, priority, and constraints instead.",
1087
1018
  `${agentPath}.coreInstructions`,
1088
1019
  ),
1089
1020
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forwardimpact/schema",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Schema definitions and data loading for skills, behaviours, and role frameworks",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -111,15 +111,6 @@
111
111
  "type": "string",
112
112
  "description": "Priority guidance for the agent"
113
113
  },
114
- "beforeMakingChanges": {
115
- "type": "array",
116
- "description": "Checklist items to consider before making changes",
117
- "items": { "type": "string" }
118
- },
119
- "delegation": {
120
- "type": "string",
121
- "description": "Guidance on when and how to delegate to subagents"
122
- },
123
114
  "constraints": {
124
115
  "type": "array",
125
116
  "description": "Things the agent should avoid or never do",
@@ -83,11 +83,6 @@
83
83
  "type": "string",
84
84
  "description": "Priority guidance specific to this track"
85
85
  },
86
- "beforeMakingChanges": {
87
- "type": "array",
88
- "description": "Additional checklist items to consider",
89
- "items": { "type": "string" }
90
- },
91
86
  "constraints": {
92
87
  "type": "array",
93
88
  "description": "Additional constraints specific to this track",
@@ -109,16 +109,6 @@ fit:priority a rdf:Property ;
109
109
  rdfs:comment "Priority guidance for the agent"@en ;
110
110
  rdfs:range xsd:string .
111
111
 
112
- fit:beforeMakingChanges a rdf:Property ;
113
- rdfs:label "beforeMakingChanges"@en ;
114
- rdfs:comment "Checklist items to consider before making changes"@en ;
115
- rdfs:range xsd:string .
116
-
117
- fit:delegation a rdf:Property ;
118
- rdfs:label "delegation"@en ;
119
- rdfs:comment "Guidance on when and how to delegate to subagents"@en ;
120
- rdfs:range xsd:string .
121
-
122
112
  # Modifier Properties
123
113
  fit:targetBehaviour a rdf:Property ;
124
114
  rdfs:label "targetBehaviour"@en ;
@@ -289,19 +279,6 @@ fit:DisciplineAgentSectionShape a sh:NodeShape ;
289
279
  sh:name "priority" ;
290
280
  sh:description "Priority guidance for the agent" ;
291
281
  ] ;
292
- sh:property [
293
- sh:path fit:beforeMakingChanges ;
294
- sh:datatype xsd:string ;
295
- sh:name "beforeMakingChanges" ;
296
- sh:description "Checklist items to consider before making changes" ;
297
- ] ;
298
- sh:property [
299
- sh:path fit:delegation ;
300
- sh:datatype xsd:string ;
301
- sh:maxCount 1 ;
302
- sh:name "delegation" ;
303
- sh:description "Guidance on when and how to delegate to subagents" ;
304
- ] ;
305
282
  sh:property [
306
283
  sh:path fit:constraints ;
307
284
  sh:datatype xsd:string ;
@@ -166,12 +166,6 @@ fit:TrackAgentSectionShape a sh:NodeShape ;
166
166
  sh:name "priority" ;
167
167
  sh:description "Priority guidance specific to this track" ;
168
168
  ] ;
169
- sh:property [
170
- sh:path fit:beforeMakingChanges ;
171
- sh:datatype xsd:string ;
172
- sh:name "beforeMakingChanges" ;
173
- sh:description "Additional checklist items to consider" ;
174
- ] ;
175
169
  sh:property [
176
170
  sh:path fit:constraints ;
177
171
  sh:datatype xsd:string ;