@forwardimpact/pathway 0.24.0 → 0.25.1
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/README.md +3 -3
- package/bin/fit-pathway.js +18 -47
- package/package.json +4 -4
- package/src/commands/agent.js +11 -93
- package/src/commands/build.js +18 -0
- package/src/commands/dev.js +15 -0
- package/src/commands/update.js +8 -4
- package/src/components/skill-matrix.js +21 -9
- package/src/formatters/agent/dom.js +27 -47
- package/src/formatters/agent/profile.js +49 -35
- package/src/formatters/job/dom.js +5 -59
- package/src/handout.html +1 -1
- package/src/index.html +9 -3
- package/src/lib/radar.js +19 -5
- package/src/lib/yaml-loader.js +10 -24
- package/src/pages/agent-builder.js +26 -83
- package/src/pages/landing.js +1 -1
- package/src/slide-main.js +16 -2
- package/src/slides.html +1 -1
- package/templates/agent.template.md +55 -76
package/src/slide-main.js
CHANGED
|
@@ -53,6 +53,20 @@ function showLoading() {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* Escape HTML special characters to prevent XSS
|
|
58
|
+
* @param {string} text
|
|
59
|
+
* @returns {string}
|
|
60
|
+
*/
|
|
61
|
+
function escapeHtml(text) {
|
|
62
|
+
return text
|
|
63
|
+
.replace(/&/g, "&")
|
|
64
|
+
.replace(/</g, "<")
|
|
65
|
+
.replace(/>/g, ">")
|
|
66
|
+
.replace(/"/g, """)
|
|
67
|
+
.replace(/'/g, "'");
|
|
68
|
+
}
|
|
69
|
+
|
|
56
70
|
/**
|
|
57
71
|
* Render error slide
|
|
58
72
|
* @param {string} title
|
|
@@ -62,8 +76,8 @@ function renderError(title, message) {
|
|
|
62
76
|
const container = getSlideContent();
|
|
63
77
|
container.innerHTML = `
|
|
64
78
|
<div class="slide-error">
|
|
65
|
-
<h1>${title}</h1>
|
|
66
|
-
<p>${message}</p>
|
|
79
|
+
<h1>${escapeHtml(title)}</h1>
|
|
80
|
+
<p>${escapeHtml(message)}</p>
|
|
67
81
|
<a href="#/">← Back to Index</a>
|
|
68
82
|
</div>
|
|
69
83
|
`;
|
package/src/slides.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<script type="importmap">
|
|
9
9
|
{
|
|
10
10
|
"imports": {
|
|
11
|
-
"mustache": "
|
|
11
|
+
"mustache": "/vendor/mustache.mjs",
|
|
12
12
|
"@forwardimpact/map": "/map/lib/index.js",
|
|
13
13
|
"@forwardimpact/map/levels": "/map/lib/levels.js",
|
|
14
14
|
"@forwardimpact/map/loader": "/map/lib/loader.js",
|
|
@@ -3,22 +3,13 @@
|
|
|
3
3
|
name: {{name}}
|
|
4
4
|
{{/name}}
|
|
5
5
|
description: {{{description}}}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
{{#
|
|
10
|
-
|
|
11
|
-
{{
|
|
12
|
-
|
|
13
|
-
{{#agent}}
|
|
14
|
-
agent: {{agent}}
|
|
15
|
-
{{/agent}}
|
|
16
|
-
prompt: "{{{prompt}}}"
|
|
17
|
-
{{#send}}
|
|
18
|
-
send: {{send}}
|
|
19
|
-
{{/send}}
|
|
20
|
-
{{/handoffs}}
|
|
21
|
-
{{/handoffs.length}}
|
|
6
|
+
model: sonnet
|
|
7
|
+
{{#skills.length}}
|
|
8
|
+
skills:
|
|
9
|
+
{{#skills}}
|
|
10
|
+
- {{.}}
|
|
11
|
+
{{/skills}}
|
|
12
|
+
{{/skills.length}}
|
|
22
13
|
---
|
|
23
14
|
|
|
24
15
|
# {{title}}
|
|
@@ -41,89 +32,77 @@ handoffs:
|
|
|
41
32
|
{{#hasWorkingStyles}}
|
|
42
33
|
|
|
43
34
|
## Working style
|
|
44
|
-
{{#workingStyles}}
|
|
45
35
|
|
|
46
|
-
|
|
36
|
+
{{#workingStyles}}
|
|
37
|
+
**{{title}}**
|
|
47
38
|
|
|
48
39
|
{{{content}}}
|
|
40
|
+
|
|
49
41
|
{{/workingStyles}}
|
|
50
42
|
{{/hasWorkingStyles}}
|
|
51
43
|
{{#hasSkills}}
|
|
52
44
|
|
|
53
45
|
## Required skills
|
|
54
46
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
guidance, required tools, and technology standards. Pre-training knowledge alone
|
|
58
|
-
is insufficient—skills contain organizational standards that override general
|
|
59
|
-
knowledge.
|
|
60
|
-
|
|
61
|
-
**FIRST ACTION:** Read every skill file listed below. For each skill, note
|
|
62
|
-
its `<read_then_do_{{stageId}}>` and `<do_then_confirm_{{stageId}}>` checklist
|
|
63
|
-
items. List all checklist items from all skills before beginning any work. Do
|
|
64
|
-
not start implementation until every skill has been read and its checklists
|
|
65
|
-
acknowledged.
|
|
66
|
-
|
|
67
|
-
Each skill contains marked-up sections and references for precise navigation:
|
|
68
|
-
|
|
69
|
-
- `<read_then_do_{{stageId}}>` — Read-Then-Do checklist for the
|
|
70
|
-
{{stageName}} stage. Read and understand these items BEFORE starting work.
|
|
71
|
-
These are prerequisites and context you must absorb first.
|
|
72
|
-
- `<do_then_confirm_{{stageId}}>` — Do-Then-Confirm checklist for the
|
|
73
|
-
{{stageName}} stage. Complete your work, then verify each item. These are
|
|
74
|
-
quality gates to check AFTER implementation.
|
|
75
|
-
- `<required_tools>` — Mandatory tools for this skill. You MUST use these
|
|
76
|
-
organizational standards that override general knowledge or personal
|
|
77
|
-
preferences.
|
|
78
|
-
{{#isOnboard}}
|
|
79
|
-
- `scripts/install.sh` — Self-contained install script for environment setup.
|
|
80
|
-
**Step 1 of onboarding — run FIRST:** Execute
|
|
81
|
-
`bash .claude/skills/<skill-name>/scripts/install.sh` for each skill before
|
|
82
|
-
doing any manual setup. Only install manually if the script is missing or
|
|
83
|
-
fails. Do not skip this step even if you can install the same tools manually.
|
|
84
|
-
- `references/REFERENCE.md` — Detailed code examples and reference material.
|
|
85
|
-
Consult this for implementation patterns, common pitfalls, and verification
|
|
86
|
-
steps.
|
|
87
|
-
{{/isOnboard}}
|
|
88
|
-
|
|
89
|
-
| Skill | Location | Use when |
|
|
90
|
-
| ----- | -------- | -------- |
|
|
47
|
+
| Skill | Use when |
|
|
48
|
+
| ----- | -------- |
|
|
91
49
|
{{#skillIndex}}
|
|
92
|
-
| {{{name}}} |
|
|
50
|
+
| {{{name}}} | {{{useWhen}}} |
|
|
93
51
|
{{/skillIndex}}
|
|
52
|
+
{{#isOnboard}}
|
|
53
|
+
|
|
54
|
+
For each skill, run `bash .claude/skills/<skill-name>/scripts/install.sh`
|
|
55
|
+
BEFORE any manual setup. Consult `references/REFERENCE.md` for implementation
|
|
56
|
+
patterns.
|
|
57
|
+
{{/isOnboard}}
|
|
94
58
|
{{/hasSkills}}
|
|
95
|
-
{{#
|
|
59
|
+
{{#hasStageTransitions}}
|
|
60
|
+
|
|
61
|
+
## Stage transitions
|
|
62
|
+
{{#stageTransitions}}
|
|
63
|
+
|
|
64
|
+
When your work is complete, the next stage is **{{targetStageName}}**.
|
|
96
65
|
|
|
97
|
-
|
|
66
|
+
{{{summaryInstruction}}}
|
|
67
|
+
{{#hasEntryCriteria}}
|
|
98
68
|
|
|
99
|
-
|
|
100
|
-
|
|
69
|
+
The {{targetStageName}} stage requires the following entry criteria:
|
|
70
|
+
{{#entryCriteria}}
|
|
71
|
+
- [ ] {{{.}}}
|
|
72
|
+
{{/entryCriteria}}
|
|
101
73
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
and (3) the compromised approach with acknowledged limitations.
|
|
74
|
+
If critical items are missing, continue working in the current stage.
|
|
75
|
+
{{/hasEntryCriteria}}
|
|
76
|
+
{{/stageTransitions}}
|
|
77
|
+
{{/hasStageTransitions}}
|
|
107
78
|
|
|
108
|
-
|
|
109
|
-
| ---------- | ---------- | ----------- |
|
|
110
|
-
{{#agentIndex}}
|
|
111
|
-
| `{{id}}` | {{{name}}} | {{{description}}} |
|
|
112
|
-
{{/agentIndex}}
|
|
113
|
-
{{/hasAgentIndex}}
|
|
79
|
+
{{#hasReturnFormat}}
|
|
114
80
|
|
|
115
81
|
## Return format
|
|
116
82
|
|
|
117
|
-
When completing work
|
|
83
|
+
When completing work, provide:
|
|
118
84
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
85
|
+
{{#returnFormat}}
|
|
86
|
+
1. {{{.}}}
|
|
87
|
+
{{/returnFormat}}
|
|
88
|
+
{{/hasReturnFormat}}
|
|
122
89
|
|
|
123
90
|
{{#hasConstraints}}
|
|
124
91
|
## Constraints
|
|
125
92
|
|
|
126
|
-
{{#
|
|
93
|
+
{{#hasStageConstraints}}
|
|
94
|
+
{{#stageConstraints}}
|
|
95
|
+
- {{{.}}}
|
|
96
|
+
{{/stageConstraints}}
|
|
97
|
+
{{/hasStageConstraints}}
|
|
98
|
+
{{#hasDisciplineOrTrackConstraints}}
|
|
99
|
+
|
|
100
|
+
**General:**
|
|
101
|
+
{{#disciplineConstraints}}
|
|
102
|
+
- {{{.}}}
|
|
103
|
+
{{/disciplineConstraints}}
|
|
104
|
+
{{#trackConstraints}}
|
|
127
105
|
- {{{.}}}
|
|
128
|
-
{{/
|
|
106
|
+
{{/trackConstraints}}
|
|
107
|
+
{{/hasDisciplineOrTrackConstraints}}
|
|
129
108
|
{{/hasConstraints}}
|