@forwardimpact/schema 0.1.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.
- package/bin/fit-schema.js +260 -0
- package/examples/behaviours/_index.yaml +8 -0
- package/examples/behaviours/outcome_ownership.yaml +43 -0
- package/examples/behaviours/polymathic_knowledge.yaml +41 -0
- package/examples/behaviours/precise_communication.yaml +39 -0
- package/examples/behaviours/relentless_curiosity.yaml +37 -0
- package/examples/behaviours/systems_thinking.yaml +40 -0
- package/examples/capabilities/_index.yaml +8 -0
- package/examples/capabilities/business.yaml +189 -0
- package/examples/capabilities/delivery.yaml +305 -0
- package/examples/capabilities/people.yaml +68 -0
- package/examples/capabilities/reliability.yaml +414 -0
- package/examples/capabilities/scale.yaml +378 -0
- package/examples/copilot-setup-steps.yaml +25 -0
- package/examples/devcontainer.yaml +21 -0
- package/examples/disciplines/_index.yaml +6 -0
- package/examples/disciplines/data_engineering.yaml +78 -0
- package/examples/disciplines/engineering_management.yaml +63 -0
- package/examples/disciplines/software_engineering.yaml +78 -0
- package/examples/drivers.yaml +202 -0
- package/examples/framework.yaml +69 -0
- package/examples/grades.yaml +115 -0
- package/examples/questions/behaviours/outcome_ownership.yaml +51 -0
- package/examples/questions/behaviours/polymathic_knowledge.yaml +47 -0
- package/examples/questions/behaviours/precise_communication.yaml +54 -0
- package/examples/questions/behaviours/relentless_curiosity.yaml +50 -0
- package/examples/questions/behaviours/systems_thinking.yaml +52 -0
- package/examples/questions/skills/architecture_design.yaml +53 -0
- package/examples/questions/skills/cloud_platforms.yaml +47 -0
- package/examples/questions/skills/code_quality.yaml +48 -0
- package/examples/questions/skills/data_modeling.yaml +45 -0
- package/examples/questions/skills/devops.yaml +46 -0
- package/examples/questions/skills/full_stack_development.yaml +47 -0
- package/examples/questions/skills/sre_practices.yaml +43 -0
- package/examples/questions/skills/stakeholder_management.yaml +48 -0
- package/examples/questions/skills/team_collaboration.yaml +42 -0
- package/examples/questions/skills/technical_writing.yaml +42 -0
- package/examples/self-assessments.yaml +64 -0
- package/examples/stages.yaml +139 -0
- package/examples/tracks/_index.yaml +5 -0
- package/examples/tracks/platform.yaml +49 -0
- package/examples/tracks/sre.yaml +48 -0
- package/examples/vscode-settings.yaml +21 -0
- package/lib/index-generator.js +65 -0
- package/lib/index.js +44 -0
- package/lib/levels.js +601 -0
- package/lib/loader.js +599 -0
- package/lib/modifiers.js +23 -0
- package/lib/schema-validation.js +438 -0
- package/lib/validation.js +2130 -0
- package/package.json +49 -0
- package/schema/json/behaviour-questions.schema.json +68 -0
- package/schema/json/behaviour.schema.json +73 -0
- package/schema/json/capability.schema.json +220 -0
- package/schema/json/defs.schema.json +132 -0
- package/schema/json/discipline.schema.json +132 -0
- package/schema/json/drivers.schema.json +48 -0
- package/schema/json/framework.schema.json +55 -0
- package/schema/json/grades.schema.json +121 -0
- package/schema/json/index.schema.json +18 -0
- package/schema/json/self-assessments.schema.json +52 -0
- package/schema/json/skill-questions.schema.json +68 -0
- package/schema/json/stages.schema.json +84 -0
- package/schema/json/track.schema.json +100 -0
- package/schema/rdf/pathway.ttl +2362 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://schema.forwardimpact.team/json/track.schema.json
|
|
2
|
+
|
|
3
|
+
name: SRE
|
|
4
|
+
|
|
5
|
+
# Shared content (used by both human job descriptions and agent profiles)
|
|
6
|
+
description:
|
|
7
|
+
Site Reliability Engineering focus on system reliability, observability, and
|
|
8
|
+
incident response
|
|
9
|
+
roleContext:
|
|
10
|
+
In this Site Reliability Engineering role, you will focus on system
|
|
11
|
+
reliability, observability, and incident response. You will ensure our
|
|
12
|
+
services meet their reliability targets while driving continuous improvement
|
|
13
|
+
in system resilience and operational excellence.
|
|
14
|
+
|
|
15
|
+
# Derivation inputs - used by both human and agent profiles
|
|
16
|
+
skillModifiers:
|
|
17
|
+
scale: 1
|
|
18
|
+
reliability: 1
|
|
19
|
+
delivery: -1
|
|
20
|
+
behaviourModifiers:
|
|
21
|
+
outcome_ownership: 1
|
|
22
|
+
relentless_curiosity: 1
|
|
23
|
+
assessmentWeights:
|
|
24
|
+
skillWeight: 0.6
|
|
25
|
+
behaviourWeight: 0.4
|
|
26
|
+
|
|
27
|
+
# Agent-specific content
|
|
28
|
+
agent:
|
|
29
|
+
identity: |
|
|
30
|
+
You are an SRE {roleTitle} agent. Your primary focus is
|
|
31
|
+
system reliability, observability, and incident response.
|
|
32
|
+
priority: |
|
|
33
|
+
Reliability is non-negotiable. You instrument everything, design for
|
|
34
|
+
graceful degradation, and maintain error budgets. Every change
|
|
35
|
+
considers blast radius and recovery paths.
|
|
36
|
+
|
|
37
|
+
Production stability trumps feature velocity. No change ships without
|
|
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
|
+
constraints:
|
|
45
|
+
- Never compromise on observability instrumentation
|
|
46
|
+
- Document all runbooks and incident response procedures
|
|
47
|
+
- Verify failover mechanisms regularly
|
|
48
|
+
- Consider blast radius for all changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Enable coding agent
|
|
2
|
+
chat.agent.enabled: true
|
|
3
|
+
|
|
4
|
+
# Maximum requests per agent session (high limit for complex tasks)
|
|
5
|
+
chat.agent.maxRequests: 999
|
|
6
|
+
|
|
7
|
+
# Enable edits v2 for improved code editing
|
|
8
|
+
chat.edits2.enabled: true
|
|
9
|
+
|
|
10
|
+
# Enable extension unification for consistent behavior
|
|
11
|
+
chat.extensionUnification.enabled: true
|
|
12
|
+
|
|
13
|
+
# Enable custom agents to be used as subagents
|
|
14
|
+
# Required for multi-agent workflows with handoffs
|
|
15
|
+
chat.customAgentInSubagent.enabled: true
|
|
16
|
+
|
|
17
|
+
# Enable agent skills for enhanced agent capabilities
|
|
18
|
+
chat.useAgentSkills: true
|
|
19
|
+
|
|
20
|
+
# Enable skill adherence prompt to improve agent compliance with defined skills
|
|
21
|
+
chat.experimental.useSkillAdherencePrompt: true
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory Index Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates _index.yaml files for browser-based directory discovery.
|
|
5
|
+
* These files list all entity files in a directory.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readdir, writeFile } from "fs/promises";
|
|
9
|
+
import { join, basename } from "path";
|
|
10
|
+
import { stringify as stringifyYaml } from "yaml";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Generate _index.yaml for a directory
|
|
14
|
+
* @param {string} dir - Directory path
|
|
15
|
+
* @returns {Promise<string[]>} List of file IDs included
|
|
16
|
+
*/
|
|
17
|
+
export async function generateDirIndex(dir) {
|
|
18
|
+
const files = await readdir(dir);
|
|
19
|
+
const yamlFiles = files.filter(
|
|
20
|
+
(f) => f.endsWith(".yaml") && !f.startsWith("_"),
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
const fileIds = yamlFiles.map((f) => basename(f, ".yaml")).sort();
|
|
24
|
+
|
|
25
|
+
const content = stringifyYaml(
|
|
26
|
+
{
|
|
27
|
+
// Auto-generated index for browser loading
|
|
28
|
+
// Do not edit manually - regenerate with: npx pathway --generate-index
|
|
29
|
+
files: fileIds,
|
|
30
|
+
},
|
|
31
|
+
{ lineWidth: 0 },
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
// Add header comment
|
|
35
|
+
const output = `# Auto-generated index for browser loading
|
|
36
|
+
# Do not edit manually - regenerate with: npx pathway --generate-index
|
|
37
|
+
${content}`;
|
|
38
|
+
|
|
39
|
+
await writeFile(join(dir, "_index.yaml"), output, "utf-8");
|
|
40
|
+
|
|
41
|
+
return fileIds;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Generate all index files for the data directory
|
|
46
|
+
* @param {string} dataDir - Path to the data directory
|
|
47
|
+
* @returns {Promise<Object>} Summary of generated indexes
|
|
48
|
+
*/
|
|
49
|
+
export async function generateAllIndexes(dataDir) {
|
|
50
|
+
const directories = ["behaviours", "disciplines", "tracks", "capabilities"];
|
|
51
|
+
|
|
52
|
+
const results = {};
|
|
53
|
+
|
|
54
|
+
for (const dir of directories) {
|
|
55
|
+
const fullPath = join(dataDir, dir);
|
|
56
|
+
try {
|
|
57
|
+
const files = await generateDirIndex(fullPath);
|
|
58
|
+
results[dir] = files;
|
|
59
|
+
} catch (err) {
|
|
60
|
+
results[dir] = { error: err.message };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return results;
|
|
65
|
+
}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @forwardimpact/schema
|
|
3
|
+
*
|
|
4
|
+
* Schema definitions, data validation, and loading for Engineering Pathway.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Data loading
|
|
8
|
+
export {
|
|
9
|
+
loadAllData,
|
|
10
|
+
loadYamlFile,
|
|
11
|
+
createDataLoader,
|
|
12
|
+
loadFrameworkConfig,
|
|
13
|
+
loadQuestionFolder,
|
|
14
|
+
loadQuestionBankFromFolder,
|
|
15
|
+
loadSelfAssessments,
|
|
16
|
+
loadExampleData,
|
|
17
|
+
loadAndValidate,
|
|
18
|
+
loadAgentData,
|
|
19
|
+
loadSkillsWithAgentData,
|
|
20
|
+
} from "./loader.js";
|
|
21
|
+
|
|
22
|
+
// Referential integrity validation
|
|
23
|
+
export {
|
|
24
|
+
validateAllData,
|
|
25
|
+
validateQuestionBank,
|
|
26
|
+
validateSelfAssessment,
|
|
27
|
+
validateAgentData,
|
|
28
|
+
} from "./validation.js";
|
|
29
|
+
|
|
30
|
+
// Schema-based validation
|
|
31
|
+
export {
|
|
32
|
+
validateDataDirectory,
|
|
33
|
+
validateReferentialIntegrity,
|
|
34
|
+
runSchemaValidation,
|
|
35
|
+
} from "./schema-validation.js";
|
|
36
|
+
|
|
37
|
+
// Index generation
|
|
38
|
+
export { generateAllIndexes, generateDirIndex } from "./index-generator.js";
|
|
39
|
+
|
|
40
|
+
// Type constants and helpers
|
|
41
|
+
export * from "./levels.js";
|
|
42
|
+
|
|
43
|
+
// Capability validation helper
|
|
44
|
+
export { isCapability } from "./modifiers.js";
|