devlyn-cli 4.0.0 → 4.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/AGENTS.md +3 -3
- package/CLAUDE.md +1 -1
- package/README.md +23 -9
- package/bin/devlyn.js +285 -425
- package/bin/instruction-templates.json +79 -0
- package/bin/instructions.js +7 -1
- package/config/skills/_shared/codex-config.md +12 -12
- package/config/skills/devlyn-engines/SKILL.md +35 -9
- package/config/skills/devlyn-ideate/SKILL.md +32 -14
- package/config/skills/devlyn-queue/SKILL.md +36 -13
- package/config/skills/devlyn-queue/scripts/append.py +94 -0
- package/config/skills/devlyn-resolve/SKILL.md +35 -16
- package/config/skills/devlyn-resolve/references/phases/probe-derive.md +1 -1
- package/config/skills/devlyn-resolve/references/phases/verify.md +1 -1
- package/config/skills/devlyn-resolve/references/task-completion.md +9 -2
- package/optional-skills/better-auth-setup/SKILL.md +24 -18
- package/optional-skills/devlyn-reap/SKILL.md +34 -3
- package/optional-skills/dokkit/COMMANDS.md +4 -4
- package/optional-skills/dokkit/EXPORT.md +3 -3
- package/optional-skills/dokkit/FILLING.md +4 -4
- package/optional-skills/dokkit/IMAGE-SOURCING.md +2 -2
- package/optional-skills/dokkit/INGESTION.md +3 -3
- package/optional-skills/dokkit/PIPELINE.md +5 -4
- package/optional-skills/dokkit/SKILL.md +35 -5
- package/optional-skills/dokkit/STATE.md +1 -1
- package/optional-skills/dokkit/references/image-opportunity-heuristics.md +1 -1
- package/optional-skills/generate-skill/REFERENCE.md +10 -13
- package/optional-skills/generate-skill/SKILL.md +13 -5
- package/package.json +1 -1
|
@@ -81,6 +81,7 @@
|
|
|
81
81
|
],
|
|
82
82
|
"paragraphs": {
|
|
83
83
|
"AGENTS.md": [
|
|
84
|
+
"00044037bbe954aacee48c5edbe01b53aabef90fbe3f0c28c9136dc428fdd7df",
|
|
84
85
|
"0042d7a45818c8e1c451ac255502ee014fda81a2dbd2a4c04e75a66bc3493940",
|
|
85
86
|
"0144d44eb6a0537211159e5f15baf2cacf11cc3275490ac5d295917df22cff27",
|
|
86
87
|
"01e073f6a5722534affe03ab334fe4a394347f13de5ce191b757a0b7c6f51904",
|
|
@@ -88,24 +89,35 @@
|
|
|
88
89
|
"029ce19ffbe7b9bab829a8da4aecbfec239c566b2b395112dddeda4516a50255",
|
|
89
90
|
"02acf4d54b0fbb587b78b227a16d3394f737f9a984d168bd5ab71f4d6b00ab72",
|
|
90
91
|
"03d85ed66f64ea52f2f96d9fb203b05ac6afc0ba634a4dfb3585429ce1531c44",
|
|
92
|
+
"0634a245075d1a5aac4e58c1345f40f5f4c3b4909315f86aacd7ab239ea3ce61",
|
|
91
93
|
"0869633a322da8f8d800b1d2c23becc52f5ff592f0823533ea24f09de465c53a",
|
|
94
|
+
"090f003bb30b98e6979865f3eb9bbc66eaa8f0cd74a89ff2eea5ef38cbee13b5",
|
|
92
95
|
"0926622dde30d21c6cafe6b69b0bb0608b31e2528655615c7edbdedc6ae43d7c",
|
|
93
96
|
"0b679ac026de2416da082320f94e0f4f0ae9680b97751500db80b3546f9db9be",
|
|
97
|
+
"0bc87e8af36113cda1539f916c835fe65485fc33e9010ece546b07e5925f4a9c",
|
|
94
98
|
"0c0458c53f32a021ed4cf6ca7db6f8c3d1dd4fc93204850017e7194864fcbc16",
|
|
95
99
|
"0c1bff2a27ca5fea0b1e2a53378a9b7a24c2c7ad0c548c397b1b773085ec094d",
|
|
96
100
|
"0ce35b1151dc073ed9c98fcce819816c0d07f912d9e780941f9f6a63f2103563",
|
|
97
101
|
"0dae9eb0a2fc92cd68cd7d674f3b6d18f5fef2bc3855df3d9005b04cb48e6cbb",
|
|
102
|
+
"10a623e1b87e495b54d32199ebac1437b982ed918ab4345a9833164edb87a847",
|
|
103
|
+
"110fc0f471d898e1cda13cc0d3020a9442fad5e1e6556e474392d31c573635fa",
|
|
104
|
+
"12d107c59a70220039ac0c034931886b3ae96d4b90f39755ae9026e6e347c783",
|
|
98
105
|
"13a405568d93fe04c3e886196f60d3599742510211844cba4d7c29a2302ad0d5",
|
|
99
106
|
"13d0fe82861940c1a9cbc55e638b99e259285291cf3f2c8604f6cec29cfaf8cf",
|
|
100
107
|
"13f787f74ba8dfa315f36ff91e7a72f6d69bf4c8f98d094ee43286e5f8a0c6b2",
|
|
101
108
|
"15598b4bdb679c765c616182509d021633b964ecc7f8be77cc0d90680a713e98",
|
|
102
109
|
"16a1d88b1a778004f91439f57371164b525b21d3aec1820510c0de596e5d1fb7",
|
|
110
|
+
"16c7d965e59534532e390b17dba008a2414fe88dcd3595e89a16d6d86ca01f61",
|
|
103
111
|
"17ac254ca2cf86f7637db35f6380370aef06c4f87c08af6c1976e968c4c3f549",
|
|
104
112
|
"186f55e73293c12c2c5ada4c8ceffdbee69c7d147e17237f3650ae235e9ca7b8",
|
|
113
|
+
"188e31cffa81acc58baf4c94b525d3a1945ffb41ba849244b7372e6852e48fb8",
|
|
105
114
|
"1b1d4045f72b6e96026b549edfcb24cfdb0e3d621814b769893f53095b11f362",
|
|
106
115
|
"1c3ef72df964eb9d6ba964b4dc1e10c442c7ac46f44e40f9e634a74594cc2f3b",
|
|
107
116
|
"1d90788860a8e032046629a2a0e106bbbf325a8a627012897ee9235fbab98bd0",
|
|
117
|
+
"1dae9a70c6181c45ecc4dc5bca6abba27c88283ad6ac7b79af19517ad393fa2f",
|
|
118
|
+
"1e422822267e34b88f562ba5255de6dd01f0ecefaf0418c9ef833171ee45e355",
|
|
108
119
|
"1f3336666bede137770444293ff66e5c104f84de7e63221c0f35c562dd8081ea",
|
|
120
|
+
"2004e8e621b572a5d0a24298a2f9f605e449c54e36eafbd47cbaac134422ff17",
|
|
109
121
|
"20fe0401771436eecdbccfaf8e24742d387292bf73017b583f8078133117c133",
|
|
110
122
|
"2203c9d11299068ec05668c24ebbd2eb461fdf832928524a21ce97933ea2cc16",
|
|
111
123
|
"220ddfe5b75c8b2787a674d801d05c1394fafc40a30ed4a83d88545b44732943",
|
|
@@ -116,7 +128,10 @@
|
|
|
116
128
|
"271a24d10b43d36b0f819cbc87d45797965aa6966a44f1b1cc5d75b358585fb6",
|
|
117
129
|
"275402f7bbee5801fab557a9c422f072bf9406d2eaa09587fb700d86054764dc",
|
|
118
130
|
"28005a526962d96d1e5903060b146fd3f061e68d360a8bd9496f3223bfc46f08",
|
|
131
|
+
"2800ed718e182f46600fd2fa81945bc1447711e61bd4631c41bbdaa167b6a514",
|
|
119
132
|
"298331f9213abbb53895eeb6cefad07b728573acd71689bd3ee99a220b40804e",
|
|
133
|
+
"29db056213342819ff931b83f35c820b51943be8336481be400b2b1595d080b5",
|
|
134
|
+
"2c0de2adfa785b49dc77589e3693b5b7e0088e1a1f89bdf59d8b3bb4796466d7",
|
|
120
135
|
"2c636872ad58c3f2cbba3393191c98cdf233cbbcd9a5ae4ff1212b897c43bcd8",
|
|
121
136
|
"2c751f07eb6bb7efbb0a54a726a71f6e30dad9421143094b4655439483575410",
|
|
122
137
|
"2d2b7a6ff45171a40273517f3b224d75329c729fe0bdf160807903a32f26ceaf",
|
|
@@ -124,78 +139,106 @@
|
|
|
124
139
|
"2f35f493f8648119ff9668a48e89d5c58cd231629bcc1cf4f0db3957e8541eb9",
|
|
125
140
|
"2fa7b235cb2c6a9ce91424a8253c969544f3ec3dea5a74517e80cc41515f60ef",
|
|
126
141
|
"3028863f5fa89be1c523eb3694f47ad8d79f6cbcbe3ddf0eed8d3c12f8632664",
|
|
142
|
+
"3170e99ff14afd2eee943acb21160fc8e0239ba3234b1067983fb3e652d16ad9",
|
|
127
143
|
"31c7c50b67666e5f036d594c91e8ae66a2f312a220e84195269d4d7c67f28b71",
|
|
144
|
+
"31fab6e9b4250d23fdfcc81c9b6fc96c98c1a9c4267011be25c5445bed74e0b9",
|
|
128
145
|
"321736562be8aee7022685afa739e76f6755d0a38f890b32c8aa786876201f18",
|
|
129
146
|
"33e5f6b7feef11a99562bc321338dcef40a9940547a7fe22b814559527e88932",
|
|
130
147
|
"33e6e01f67981cf6b4020218dfc4d87cfde7115bf205541fc2441b0876bcac2a",
|
|
131
148
|
"3475b34e03725d5e8ea4f2e2fbecc60e1c3ad4a89167e1bb9a26d41640eccbd7",
|
|
132
149
|
"34a09b8d6023ae5b858ec5135cae8efeabd921e3108e63e9627a222b188fe554",
|
|
150
|
+
"34a494444df9d11dea3e6f01868ed11ece52c322d7198ed2075ab2640da45266",
|
|
133
151
|
"350aa6a3140d56a22cb4d5f2503f453ad238384150dc2b5e480fc626db33dfec",
|
|
134
152
|
"37f003566c80ead28d713e86bd6a877e2e3239302c884911f5144a896c291c17",
|
|
153
|
+
"39972d3dd19a7d771d2d3a5d083fddca6da1a22ad8ea27dbe70bbb4615ef2c94",
|
|
135
154
|
"39af5b94a2734e4fc6c943b604fde4b0d798c4a2a7b1ffb5d053ab7f22488de3",
|
|
136
155
|
"39c3033487667dc0020f9cb6c106afb000177294560be80d67b5020475aec3f6",
|
|
137
156
|
"3c38ab8745dde6391d4dda47d74fe5f8cef410c28325d43dc0dd22e8cf4ab4a7",
|
|
138
157
|
"3d5ebe5059b580afbf55f16003024a2b78214c7fe02240d22a13871c3c9c5d6f",
|
|
139
158
|
"3e87f3023f1ee4810c769a27f63244a4c4825fa3c78417abd8a1a4bfb6350134",
|
|
159
|
+
"3efd55e3caac3e3488b81921446bc9ca4ec92ac766abbcfefafeb183b21464a1",
|
|
140
160
|
"3f05e197006cf9715612c67cb8709690e053262e9a0702723e69798ad29a2c08",
|
|
161
|
+
"41323b1c12be256f604edf8c49ff505acbaa75b6a1b938b76286d5eebec1ce95",
|
|
141
162
|
"41660630582e14f984686f201e6af130e29bbd3fadc3c76a3c6055a7a8f78c4f",
|
|
142
163
|
"41d2ff119ff97961c64e5eb57632c2d04b22794b50eb9227506c4ed763ebca3f",
|
|
164
|
+
"4289d25b4cde8b257b57c559fd4c848b6f0f9f8e4133765c02e318fd632a5ad0",
|
|
143
165
|
"4296dd9dd895ef73f7f5333506b5c680bf43ecb49899dd59e1330bc08321a531",
|
|
166
|
+
"43f175fbadb60e9392dba146010d5162e5a7f8999f82af509b7e050c05cd5ef4",
|
|
144
167
|
"44ddff760db63fa64c11b8d7b991757542a3b8a352424f987414d2ab009ddeee",
|
|
145
168
|
"45d23210821e7c6e0ca7a913c318fcd99a25f1f5c6fbec94fb352790f114b7a0",
|
|
146
169
|
"47409008d40b54fcca9d06d2f02b3cb1e399d1b6cfd612c2c3f0d31d305d0621",
|
|
147
170
|
"496090ec83bbdbe440289a1bc79d64f225aa30f7a84e8cac39a289a8bf3f40b0",
|
|
148
171
|
"4b577b0ca5006944b42aa87a0c45f76eb1c371e0200e6287958c47369437a7ed",
|
|
149
172
|
"4bbcb7fefd5366ed4151ce588e8482b747bdd85a7ecf795862a1c243218a162f",
|
|
173
|
+
"4be3b4c5e644ecc5ae41a86223d9d0bd3fd73f4d78e633528a49a8a87989dc3e",
|
|
150
174
|
"4c3c4295f7cb794d0466f93886bf89b316382feafec68606385eb6b4c36eebbc",
|
|
151
175
|
"4c4ee4b0948bc84b130c39b9846a5317ec76a6e3a8d95281a78e740192081662",
|
|
152
176
|
"4cae665b0a714cd7b20b59ef356b53e21dec1cf4679458de2a23b5077bceafff",
|
|
177
|
+
"4d38758f5c5c00cf25a80c136329103d9a1a4ba80fbb4650465e2dced831c3e4",
|
|
153
178
|
"4d42f91b8ff88de40921f825ec3a9aeeba30e85c7442ea2f8876b7c68555c39c",
|
|
154
179
|
"4d756bc5c6a7c7ca1589efc6c340c75fb389699fe14d114aa211a29921e7effe",
|
|
155
180
|
"4dcba526b49c91411d98925a7f638d990acea0f904ba8f143f195f7f99f85e33",
|
|
156
181
|
"4e114313a6fbf27b89bebe7847f9aebb4ca2c61d23d167997efd459fa091e602",
|
|
157
182
|
"4f6bf3fa8b8b706d234a7d5a3dda34e52ce1fcba68770aadf606c1717543bd5a",
|
|
158
183
|
"50fe2edc6da214c0ae4bfce43d8d210f98ff15da2d2f9bca88269dab9a4ed179",
|
|
184
|
+
"51a7490d3c92e196373ec01bde05d8209426b765b6351dfe27449838c487f073",
|
|
185
|
+
"51f3b9f2ab795a0f73bdb10888c11519d1e47bccb883c15048898366d2d6a051",
|
|
186
|
+
"520d8aeba0a6cdea9550a580e1e596435af8b79ff1af7a26fa28e7e9460c78a7",
|
|
159
187
|
"53a8f3196d2320ba46bf1299bfabb38dff495218bb47b35a43ac5072308f9deb",
|
|
160
188
|
"54cdf7a05afb97642d06a0d8284f17d51fed5ce0fdcdac949655c47734802893",
|
|
161
189
|
"55ff3f39ef7341cfb1e8b50271821d574eeddc455461d6df317caa9c5b55827f",
|
|
162
190
|
"565b3481d42f039453771e9d72fb87d268ef8ca1df8255ddbcd60d3ec08f1d17",
|
|
163
191
|
"5791164f8db2193d08400f98638ac6c3ab8999e18316527c8406245e8c902a0b",
|
|
192
|
+
"57fce2cb0a6e9ad1e9b7bb8a4c41345a43c591632aa8b5969104724ed9d63d78",
|
|
164
193
|
"5879c70282a5c7f15af3d44993c5985991e1550aa892d5896c63cd7833b5a77d",
|
|
165
194
|
"58abb824a9ec59fdf03abd03fcca79dd7d56953936e20533d6e1957778f3543d",
|
|
195
|
+
"5978dcb6e377cf64fe4865f68355d9f48bbf6f2fa19a2d89eb94e5eabbb1e813",
|
|
196
|
+
"5a12650a43b6a809a28ef665907740b90150fce895b4d4de4e5d7446a482f182",
|
|
166
197
|
"5ad7118a8116ae2fea66b45dc6c59128b16f8e8000911f87acbcdba1525b9b68",
|
|
167
198
|
"5c775bb62be74cec0b9f52520d89ac918872c3a65832c7eb120b5b4461b30854",
|
|
168
199
|
"5da2a81f95f8697406622ac92c8ccb61537b90c74a99beb48905844394cdd93e",
|
|
169
200
|
"5e329ef8e25962ef0c9b29cf769fa1a92a82ab597ef29118961ff250eee76f70",
|
|
201
|
+
"5e73319288935d1857bf1d9b8a46f56c19bdffd46ff2f822b930f2b17cb1f98d",
|
|
202
|
+
"5eaedae1a36f29150537ca51771c3ed19afadc72e08a304179c52454252ad312",
|
|
170
203
|
"5ffc38dcb6fdccd02c03d67777b3a45ffc131883b61ce604dc8c9d74394dd739",
|
|
171
204
|
"601518dee731c1966283001440827f4250beccc82bfb573d596e04eac45c1918",
|
|
172
205
|
"6152799d5f13bb10d474f2498c0b5258da2ee5197819b67ff87716183711a59b",
|
|
206
|
+
"6167d215ef472ba8983c5e9c98ac2b8ae38148af484bf9ab5b510604481ccaa0",
|
|
173
207
|
"62885f1b3145c2db1c43cf177136b66a96a3bffeed9d5f21ae030dd11ce0cbff",
|
|
174
208
|
"62e6fd47df18ae64e990abb2961344564aa5ec6fc621ef29b98a7fbfc699eade",
|
|
209
|
+
"638585f17e6093b78a60d897759c98be26fc1f638d3986e5026716e11cc723c7",
|
|
175
210
|
"64466f2e02790fabc286e2473824862a82b792f0f30443ec47c2d73b6798972f",
|
|
211
|
+
"64d7917277aed5b73764db6995682997319ecf84ce6baaa1a117506c78c58e03",
|
|
176
212
|
"651baf0c8e411894a3f7f062ecb3899754c5b18b6fefa90c3a369d97b9053b76",
|
|
177
213
|
"65be0ed583da62908bc6cff50a6276892deef26e13a2973547b3c2275f998215",
|
|
214
|
+
"67e66519c9ddea6dc18617bf2f9217f00de6e691f2e9189da86467cf53a71ba7",
|
|
178
215
|
"68015de1a4488c72de9f89222511fc19a8f300ec34384e79f0472614f5f1d89e",
|
|
179
216
|
"68c2c7120bbd720ed650d8f1ef4512cf7c3899eb7aa8f0c729eec0a5d3056edd",
|
|
180
217
|
"69360e65a9a3598323719c0b212025eda2bad51fc936caebbab686aee72fe559",
|
|
181
218
|
"6944b85b05112f427b40c2407a68f51acadb3d9f65c82afe5772780fc5bd47d1",
|
|
182
219
|
"698aa7cde1345c04111a10d5fa1c78eec6ac8867185908f3705a875a5b3bb875",
|
|
183
220
|
"69b0122066857d8b166ab5e94e162bf2479425760914ca6c05c655455b8f6e66",
|
|
221
|
+
"6a08a11aea6a1dfaa99823a73bc8730e8fff9c483ec8989aaeca669cfc7b3ed6",
|
|
184
222
|
"6b287911edc5fa5f7792941de251b46d8ae8500553239b559f11292136e89e7a",
|
|
223
|
+
"6c32954c006e1cbe92ca74656797f0165dbd55ca77a8873fa63737206e40b857",
|
|
185
224
|
"6c7d2465dc68f1d040d5f3904f7d08622a0f2195de893635f5f359e72b9b2f5e",
|
|
186
225
|
"6ce3f0a6ffffd02adb100b725b53ad6cacc2a133f38075e0103bfd854792b2dd",
|
|
187
226
|
"6d55968e33c5b5d6e3a7efd67319584a16cd2ed3121bca9b5337f2abfd583566",
|
|
188
227
|
"6dcd1ec9b76ba8cdb6af964b9eb6bb9e7a1e57b9a050501638d7f99b83ee878a",
|
|
189
228
|
"6e32040ced878f6cd2a2fb3848d1b7ff43020244442b3f84349ccc063c96d191",
|
|
229
|
+
"6eda1f1ba7cfa0773c7248f51b449014ecc2d954b0dbb8e06d2e0476f41548fc",
|
|
190
230
|
"6ee5b6030d798abf42b9cfc72a181c94215a1f5c219538a502d926996b1f8fef",
|
|
191
231
|
"6f04a962b5ea29922a81fd4ac5402474a6c1320c2f660ce6c80837f0367575e7",
|
|
192
232
|
"6f592236266c8c6256cdd7a352d4fec36316022005029b96859c6a65380b233f",
|
|
233
|
+
"6f9b366d18f73b72e6d66bc942a84126c60bed911faf834522c92fde7d12ad4c",
|
|
234
|
+
"7076c6738e6d3e2739680f57c9ab3c7522ec0b9ace00b663619bcd7370ce570a",
|
|
193
235
|
"722cc953822fe6a46b182f787999d166920a6b3ad4bd71b57ea2bdc79590071a",
|
|
194
236
|
"74d1a65b0689c3a4fb81c950c56f8b753a240f43ca336389aadc90c02fae13b9",
|
|
195
237
|
"7608b1cabef6a327cd841f8c994301a12aa29e04a00fcd02d641a3ed6d619db7",
|
|
196
238
|
"76517a747d47a3986b7181db4bbe5898ad3d6d82644ce39d8bf62edc998cecb9",
|
|
197
239
|
"766c776b750cb84f084c49679fa377899693acf5f8d4e00751ca0fab97b4f030",
|
|
198
240
|
"78690fc75b54ee634413fd0d5f6892692b2557e8838fbb8453f7bdd4b6519cc5",
|
|
241
|
+
"7a0d897737f705b0276b829df5b62fd9541e3897b872b2a2668f54e08b88dfff",
|
|
199
242
|
"7aab816bfa43d73b4eb8bd9136242e8a4938f3610e7ad3c32e033b7ee3d28a1e",
|
|
200
243
|
"7fde023e25658ff48c67b6708c5b6f383a6497a509946cb3bdc5da7d35e4f3f6",
|
|
201
244
|
"8211bb3dcc9d7df40c393a4ef8e620526d84ded9faec25655cfa74801458515d",
|
|
@@ -208,13 +251,22 @@
|
|
|
208
251
|
"8954f0209ecdac5a48f68c9ba5da95840ba745aabfb3751c6c216a06d809d1c9",
|
|
209
252
|
"897d0d57a5ab67b082a3fbaf078ac3e9c724acb033b6df35b8959ae28c26bc93",
|
|
210
253
|
"8a612ad6038c31b74582cce2a2165c2be6be72e29db03dd2a2ab55d5a67d3055",
|
|
254
|
+
"8b0c46ab550956964233c24c188a68b9e054b9a250c17a7f7d3ac49dcc735798",
|
|
255
|
+
"8b5229a215f1b662c6da49a96f06bb7ec32e39c435100d49275272c25837fb47",
|
|
211
256
|
"8c06bf7daf489571b342b7b4ba23b13f28cc5436e1b4694460e29962a7b63e8f",
|
|
212
257
|
"8ce293fd80ec392803698f6564b995f6bbcb8fc6072dcc8a45b0b4afea989950",
|
|
213
258
|
"8ec1424b49dbae25dcba6f7c220624a024e426f32a0fb1bb56b49cfb38ca4132",
|
|
259
|
+
"8f661ec0332ea9652b1d64fcf2f49d7fc74e74e640b9721215091b80336340d6",
|
|
214
260
|
"8fcf65b36f913900c3383577658b5598d6dfedda065b8472bd1465edbe16598d",
|
|
261
|
+
"907b9aea6b6b8bc92c533e20959d36fdc4cb13555a1c7424da1a4d06dd54940d",
|
|
215
262
|
"93139ffbcc58182fa3eaace0cf7a3b390ec022df48d2d868de5b0612539be43f",
|
|
263
|
+
"940314e942580968c7db9913998373fae2b4c7eb454a619f7dc5055d9f9f0da8",
|
|
216
264
|
"94572b9eb51f7e043637fb65f5bcd4614c4298a3ff1da72d3b837f28e582816b",
|
|
265
|
+
"94f2a4a84eecf32eff88690fef58f842874597ab6891a1e76b08bd717ebe1e7d",
|
|
266
|
+
"95805d8d950e2e16ba18b2e7860aa2d12c2d7cb779f2b67e5ce3bfd3153aa7bb",
|
|
267
|
+
"977dc49a0f94b5ce9a9300d1751d30a87a7f9f14988ff1134db1755495014485",
|
|
217
268
|
"97e49229fac2d3fcde65cb617c0d11df002ba61b0237ac270a536d086966f85d",
|
|
269
|
+
"98376af0fb1e33b5d4f7434a1045359330c8f8a44f19fd4e7c03a9190adc8f80",
|
|
218
270
|
"9a736d01c0be8f37b2749dad83296aa85af28f9d02df1040fceee2f56800d02a",
|
|
219
271
|
"9af7d2cfea6575731b38218b91f3cd80b0e92e16ab875e04f830f0251c1820ac",
|
|
220
272
|
"9bd770d53f10157db148c3513852d4ae627c52a736b004984f8d84ccf8b1b91d",
|
|
@@ -224,25 +276,35 @@
|
|
|
224
276
|
"9e074e9e2c4302901a160f0ba121aa348b2a0e1e1313a2079aae289f2746de3e",
|
|
225
277
|
"9e65019acb60433529160c929b840398fe6e5d72dcfd219cb79e69ba2d3cd5e9",
|
|
226
278
|
"9f62c5b2a94e8b5e81528ccbdb6f78d147d14882108568b2cb3b7f85212694c0",
|
|
279
|
+
"9f6d9ef148d5b4ab1e365bd7411a01a1d019ee241d9ed556bab5ee7499d79417",
|
|
227
280
|
"a02eb2d8d77553327fb77377dbfedeab059b2e68e0a33c469b9be54a5d55182b",
|
|
281
|
+
"a12a5593a1725fceed3c52706a13ed6a72063f267e13696f0ce2a4bc50bb37b5",
|
|
228
282
|
"a27ec7f5f0f0a2798e53695f20dc43fe28378d551fc060e2c772d0b522a336e5",
|
|
229
283
|
"a3a15249968f64085b0cec8c0826688a4c3a1e4cf09b4879054baa086d5cbca1",
|
|
230
284
|
"a4da26a46ab83815d8ca5d747c68a907ad67dad485adbc6c863b982ee23b307e",
|
|
231
285
|
"a5d6ff585d696254d6727cd1e6d7f8825881f90210eff744265e211ced715ea3",
|
|
232
286
|
"a7ff913df40945a8a16b6632214020a368119ff665953d4a07ec58330b39f101",
|
|
287
|
+
"a9395efaa63038c24ffaed027b72acd6d67612a80f697e47fd440e3ddc16ef20",
|
|
233
288
|
"aafc680a7ac73e100f4a17d2c4070190e68563f78614c39f4c2f58f1e291d9a9",
|
|
234
289
|
"ab7f6d08d95cf1c22b7ec6e2e113158b7f767b73d8dde04fd1c3b33788922c93",
|
|
235
290
|
"ac432d9179f245fec0beaf4010355613dcd6d476d8c9268c9cd430c98e73ff35",
|
|
291
|
+
"adcb46726c532fef32c4e420d305c2de9bd43b668fa5d0e7f00a570a6a426500",
|
|
236
292
|
"af3a498714fecb29ebdc1e43e5cc0425efaf1c290130e6913cabd75fe4c9cc67",
|
|
237
293
|
"af77f01317665c50815eb3cfefe481519efcc9c8b81bac06fc110abf723c7868",
|
|
294
|
+
"af96d41e6e6d2dce4d1038d71f0f68306fa8170d2c37c537c593778e558f3dc5",
|
|
295
|
+
"b069c869e8261c335a230abc5280680226310539f2c88d0981748232779ccf92",
|
|
296
|
+
"b07ae643b2e0acea880c9aeb137ced4994c110eaff49c4d2c4ec9acf7456ea8b",
|
|
297
|
+
"b30a7e52330cb528e990355934068a2dac3348cff7d1feca16d45749a80fcd15",
|
|
238
298
|
"b3921b2317558010f99625aff30f3ed7a7a0dd4f37c586a6c4f9e1001e100134",
|
|
239
299
|
"b3ac898e73c5b7923c1050bdbc36144dc6f4ad8bd9b83c8515394c418ef447ed",
|
|
300
|
+
"b47216b5373d7311644fbbbd84031fb9f4fc9cab95027408c4d570c06dbcbcff",
|
|
240
301
|
"b61ff3e6723cff3138e0ec8a134796ceba89e8e92ebeedf489f27efb2c7b7308",
|
|
241
302
|
"b80dfcc822578de4d16dafd7c574043304d0ffb07081f057b106a305dafd5715",
|
|
242
303
|
"b973a4150a7803f88f863c28cd597cc375e07a6603b7c19c1a921c8f768faffe",
|
|
243
304
|
"ba5832e597f0ec03182fa53b62c7cef1e858324e32f6fc875ca3e0cbb05b5043",
|
|
244
305
|
"bba97d2b6986964c1f68e11e928cfaefae20a06b3d4a01108eaa19a9a871c6a9",
|
|
245
306
|
"bddb4f88a0c11165b9cafe7a31027e9769313e1aee7c0a9ed9dad490e4fe1bcc",
|
|
307
|
+
"be11c198a50be2884c4c1efec52bbddff55c7547a5daf0ec2ef046279c95dc45",
|
|
246
308
|
"bfdb7c7e4db21e1c452e730cecadc8e97abd317c6e54ae58c298f4288b1f1354",
|
|
247
309
|
"c236da36a45d4013ffb7e131575229b605f662a30b5174f14754f519acc24252",
|
|
248
310
|
"c276962617888c5ac2d352c5e2ed018c5ce9d00f199c73e1dd61438ec4a914fb",
|
|
@@ -250,13 +312,16 @@
|
|
|
250
312
|
"c30ca5296f3d86e32cc6402854fd788418f18522f6393739f915d7cbbac07f98",
|
|
251
313
|
"c3ac943658e9b46ca3d6fd37c28d9fb0046c9e5c55b80bd3f4a2075ef034b3bc",
|
|
252
314
|
"c487138f2084c8848b9b8139db0d023bc5bd5be9d23f362fa067a87cd4434df8",
|
|
315
|
+
"c4b86faf6aaf92338f4854d33502a9144a605356d5d6043a4319c65998aaa659",
|
|
253
316
|
"c4ff44cfc1edcc2cc02eeeb9a71e8983ed424b39194cd223a311e7e2008e2d4f",
|
|
254
317
|
"c5e84bc89a528d25424cc483c813429bc18a3e5c26ce08faa431bff5806ef347",
|
|
255
318
|
"c69efc98cb9c2624f1c316e1e2fc2ff7bd571b56f2464d91ff26d8a53a121a8f",
|
|
256
319
|
"c6f56fcaef8225a3c8bc51a989c0c8f7df60af5b1f5249b8ab8506d1dacb7a8b",
|
|
257
320
|
"c71ec3ca963cb4b7ba17af0733c14b8f12a40f3eaaf7c5a38e547a93f55ed0fd",
|
|
258
321
|
"c7beb627b08fa0ef03ce82a50f04264faf3b9c537f086fed8394413725df644d",
|
|
322
|
+
"c7c237437ad0d596729af187abd116cfb196f70ae416eb82ceeeaeab0ccdc855",
|
|
259
323
|
"c8ad53d4b77a68110b0117fd4987045d51a18c8a898aa9f19937c69e338d123c",
|
|
324
|
+
"c8c41ebf06a97a07a2a7bd9b84eb87380a9e1ecfbbe467695869b6f3120557c9",
|
|
260
325
|
"c9ac8adc629118280bf558eb1e03002d10f86edb4945db776d0a7b25861a98da",
|
|
261
326
|
"c9cb893dbaaa9ce01e17b6a922ff540b8ef3a3cc137892ecb973ddfb2571a7fd",
|
|
262
327
|
"ca5b15055913f9a606df9f09cbc4536b2f24258e25b568dbb16926248904d840",
|
|
@@ -269,17 +334,24 @@
|
|
|
269
334
|
"cefad7acb7dcd92777f888081aa6585b1418aa581366736fd44db68b1bd66dd0",
|
|
270
335
|
"cf43eb0460beebdfe1efbfb1a35a39e5fe450137252ea2c83e51d978faa1f17e",
|
|
271
336
|
"d00bd5de007711de75b02c2602708aefac3715667dd924912296c219ff032e1e",
|
|
337
|
+
"d01281863338b4ca88c8af979296b5c92534053f270079ee508cdb0bc7810eca",
|
|
338
|
+
"d07f2a32bc75d6b25d60a5404db6fba52bc967bde80862484ed77cc7fdc8ce1f",
|
|
272
339
|
"d189a2002b4ef0e858acb734c4ed14f6af6f0b7bb250b178f65d439369a9149a",
|
|
340
|
+
"d342ef78e480e86a51375142cc31797143e3ebd3dec52ab2f788530505f54fe0",
|
|
273
341
|
"d41692aa7577bbd85144fe73d111947f98e1304f4aceb891d712daa5907d550d",
|
|
274
342
|
"d486a0b267c9425bde2cba737d802d2412a9b4b4b339e925500c1643327d2a3d",
|
|
275
343
|
"d5d8d02a1fb53cd28ed1c33e7184067b76defbfcc6cab9498b365dee35579013",
|
|
276
344
|
"d75bdfc9cf08cfcb46214f69dac4f20b1a0a30b86d91127007fe587de9eaaeb0",
|
|
277
345
|
"d768a149b5842e0d50eda941872188c8b29bcfb4b1aa0f4190fd4299f237fce0",
|
|
346
|
+
"d86e60d02c872b5552afb7a99499d3f3433c4ee3117a95bdbfb48d78b7cb72df",
|
|
278
347
|
"d8c50cb04441e6b568236bc6cd494b4de296dfc7e8b33cf96e7aeb94612df3b8",
|
|
348
|
+
"d940c2df4cfffa42265e4f85e429762b99dd6d055c1658d782c7b472c6ebacd5",
|
|
279
349
|
"da019f3edfb762b9216016a3ea9cf7211b2ba698a55ddda5cec2e478218b0288",
|
|
280
350
|
"ddb200267b43942de3c061b449d08cc3f73441258b74816cfe13da091377b428",
|
|
281
351
|
"dff43f9976c68267baf13f6a460f24af8e76be233c8440ac4684dc664106deae",
|
|
352
|
+
"e031aef2a9adb0d0900e8269cf84c892f77b9938984e26df54826d1771861629",
|
|
282
353
|
"e05f671dbf45aef8e7e4211195d46be8554c188d8df8899093359c414ffef2fe",
|
|
354
|
+
"e09e26bed82003847992909d860bc7d57fd12e34f68839508b59f6e14056399a",
|
|
283
355
|
"e237f12ed08800ccc4c6eb4ae57cdd59d61198711f6a3b02dcb668aa08fddb93",
|
|
284
356
|
"e289dbab99dadb30d8315b32b8243154148c82955f238936bce4c1fe1c3ae525",
|
|
285
357
|
"e2bac40f3ff0b39726f95caaa9b19aa3b21596f165ac7a9dc68ebf42681d58cb",
|
|
@@ -287,13 +359,18 @@
|
|
|
287
359
|
"e43e4b5b86044fbf7be8d7fd1e3e27cd2089bfc8243e07dc2c3fc034c19794ea",
|
|
288
360
|
"e44015948c7d04e60f3fed7e348c2052538e7784d8fe7ea3edf9f52de07448dd",
|
|
289
361
|
"e54b2aa51360267b8f397fb0d902e13af7ae1e3a9194dc7b83f8011fc1174f9d",
|
|
362
|
+
"e562f976c71f5e66f5a55c3eb0fc18a0aa5e6b443d41478117e6b58d58b7bcd1",
|
|
290
363
|
"e60304667adad561168f4d49a6ace28e6dee00458824a18934a7fbadcc9ffe87",
|
|
291
364
|
"e651b56abaf3714b11bf777a6b1852fb584eced5dc1ba9276fdc99d4947b0fcd",
|
|
292
365
|
"e7b6acc92feeca083213584386a523d10a38f00bb37520e38237e2a867336a90",
|
|
293
366
|
"e8fc2a1e576ab5040456c1bb42627a9a32677bd8b838168858ff2e50b04b6514",
|
|
294
367
|
"eabde79c2815cd4156619b6057ae519cd6d853f8618a50148bb2139e5901750a",
|
|
368
|
+
"eae84c889dc07cd55106a4ef9d58a6048cf13795a6a3125962da9fdbc4d4c493",
|
|
369
|
+
"ecd1441f52e2606eed2f65e5a44fec96241efad764f7dd925ceabf12f9c7493a",
|
|
295
370
|
"edc13409cbb9d5f8490db1b5dab2cce87d80f288a1b6831631063aed863713fb",
|
|
371
|
+
"efa2d941ac13cd2f71980a14bb46e1c304727012ee8eff783556bb9f7c091587",
|
|
296
372
|
"efdaa126a2876e4e8d365f35e77ab1a2fbd7f35bf153edc8e2983e3b0809b159",
|
|
373
|
+
"f1103992e82ffb5c051e93a0ad38ef40ce143b9b9e7ef99a9ebea372607118ff",
|
|
297
374
|
"f1c1d51c3774ba6954d970eeeeb89cfea67c84f9cd0a4dddc62ff4c0ed4933fb",
|
|
298
375
|
"f1d90015427db879f4e68cf154fdd15a4a5ac714ee55f471e66116c8d8eb4487",
|
|
299
376
|
"f47ac6855ee2491356424b56c281d5f2d6e871ad68ac4ac2e55f63d44707f2b0",
|
|
@@ -303,6 +380,7 @@
|
|
|
303
380
|
"f7bccdcb0aeeb796996b3f245f11106af7a312248a198c516370bd97dfa7d681",
|
|
304
381
|
"f82bc3883defb365100cb5b86b9a9a8ddcf5fa81c1eb83d657089190be44979d",
|
|
305
382
|
"f8d3895ca1e8ff9197b21b37088e59b341668873be310a6661d93808b79dc3ef",
|
|
383
|
+
"fb04cabf9ddaa3b85bcd9217f6a816f6388b5b065a4887d5965335a81ef84fe6",
|
|
306
384
|
"fb5190a3e4a8a4cece04d127c9ca4c7a67598f294f29941b08ef779ce60d9a6c",
|
|
307
385
|
"fbab958f82d33ec1fc50eec993ad2790c96a06a121672095d6673977b244b9de",
|
|
308
386
|
"fc222187397c3c6cfe0a9864e8449e9f365f396cbf26368cdfd955fae9ac164f",
|
|
@@ -455,6 +533,7 @@
|
|
|
455
533
|
"3ab5f6021b62f21624e3eed505cc6849c66972d01ac67337533cff0e81dc9dc8",
|
|
456
534
|
"3afe3870751373b6059ebddfb6c179ab70b7a1f3a9299555ecf5ea47c2970422",
|
|
457
535
|
"3b5bf36be5ad797443dc5c1c407684c6f86b28894ca9a975a3fb5c18b3066fbb",
|
|
536
|
+
"3ba1747fbe0662a0aa9c42e6e442748f013a8e90febc330e2854ab9ad841dd77",
|
|
458
537
|
"3cfc73fecd13c54fd400f5b04b2c4113cc776c102f6f09eaa401252276818e17",
|
|
459
538
|
"3d321af4f48efc92735cc8772cf092f15789ac63e1e20f857ba20c0532453eac",
|
|
460
539
|
"3def30362c96b6238021ab82e6f2ebd2974005ca94a84008f43528aaa7eb435f",
|
package/bin/instructions.js
CHANGED
|
@@ -143,6 +143,12 @@ function customInstructions(text, name, template, managed = false) {
|
|
|
143
143
|
return bom + paragraphs.filter((_, index) => keep.has(index)).map((p) => p.text).join('');
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
+
// Devlyn defaults in an instruction file: a managed block, or stock paragraphs of a template
|
|
147
|
+
// that a release before managed blocks copied in whole (the evidence migration replaces).
|
|
148
|
+
function holdsDevlynDefaults(name, text) {
|
|
149
|
+
return text.includes(BEGIN) || customInstructions(text, name, '') !== text;
|
|
150
|
+
}
|
|
151
|
+
|
|
146
152
|
function retainFile(file, bytes) {
|
|
147
153
|
for (const directory of [path.dirname(path.dirname(file)), path.dirname(file)]) {
|
|
148
154
|
const stat = fs.lstatSync(directory, { throwIfNoEntry: false });
|
|
@@ -268,4 +274,4 @@ function updateInstructions(name) {
|
|
|
268
274
|
return true;
|
|
269
275
|
}
|
|
270
276
|
|
|
271
|
-
module.exports = { updateInstructions, InstructionError, instructionParagraphs };
|
|
277
|
+
module.exports = { updateInstructions, InstructionError, instructionParagraphs, holdsDevlynDefaults };
|
|
@@ -6,20 +6,20 @@ Single source of truth for how every skill calls Codex. **MCP is not used.** Ski
|
|
|
6
6
|
|
|
7
7
|
All long-running Codex calls go through `codex-monitored.sh`. It streams full stdout and emits a `[codex-monitored] heartbeat` every 30s on stderr. Write multiline prompts as exact UTF-8 bytes to a task-local file; set `DEVLYN_CODEX_PROMPT_FILE` and pass the sole prompt argument `-`. The wrapper snapshots those bytes before dispatch and seals actual argv, prompt digest and completion in `<prompt-file>.transport.json`. Missing/unreadable files, competing prompt arguments and receipt/prompt mismatches fail before launch. Without file transport, stdin remains DEVNULL (avoiding the open-stdin plus argument-prompt hang).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
Use the DEVLYN_SHARED_DIR established by the invoking skill; if it was
|
|
10
|
+
lost, re-establish it by that skill's rules. When this document is
|
|
11
|
+
opened directly, bind DEVLYN_SHARED_DIR to its reader-supplied
|
|
12
|
+
containing directory, resolving directory symlinks. Never take it from
|
|
13
|
+
an environment variable, cwd or another installation; without either
|
|
14
|
+
source, stop with BLOCKED:skill-source-unresolved.
|
|
15
|
+
|
|
16
|
+
Bind CODEX_MONITORED_PATH to DEVLYN_SHARED_DIR/codex-monitored.sh and
|
|
17
|
+
verify the file before calling it; failure is
|
|
18
|
+
BLOCKED:shared-dir-unresolved with the failed path.
|
|
19
|
+
|
|
20
|
+
After establishing DEVLYN_SHARED_DIR in a Bash invocation:
|
|
11
21
|
```bash
|
|
12
|
-
DEVLYN_SKILL_DIR="${CLAUDE_SKILL_DIR:-__DEVLYN_SKILL_DIR__}"
|
|
13
|
-
if [ "$DEVLYN_SKILL_DIR" = "__DEVLYN_SKILL_DIR__" ] || [ ! -d "$DEVLYN_SKILL_DIR/../_shared" ]; then
|
|
14
|
-
echo "BLOCKED:shared-dir-unresolved: $DEVLYN_SKILL_DIR/../_shared" >&2
|
|
15
|
-
exit 1
|
|
16
|
-
fi
|
|
17
|
-
DEVLYN_SHARED_DIR="$(cd "$DEVLYN_SKILL_DIR/../_shared" && pwd)"
|
|
18
22
|
CODEX_MONITORED_PATH="$DEVLYN_SHARED_DIR/codex-monitored.sh"
|
|
19
|
-
if [ ! -f "$CODEX_MONITORED_PATH" ]; then
|
|
20
|
-
echo "BLOCKED:shared-dir-unresolved: $CODEX_MONITORED_PATH" >&2
|
|
21
|
-
exit 1
|
|
22
|
-
fi
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
**Read-only critique / adversarial review / debate** (`/devlyn-resolve` VERIFY pair-mode, plus any future ideate read-only critique). Codex returns findings on stdout; the orchestrator writes files.
|
|
@@ -10,16 +10,42 @@ $ARGUMENTS
|
|
|
10
10
|
</args>
|
|
11
11
|
|
|
12
12
|
<runtime_paths>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
fi
|
|
21
|
-
DEVLYN_SHARED_DIR="$(cd "$DEVLYN_SKILL_DIR/../_shared" && pwd)"
|
|
13
|
+
Before the first command, establish the bindings below.
|
|
14
|
+
|
|
15
|
+
Resolve bundled resources from the SKILL.md loaded for this invocation.
|
|
16
|
+
|
|
17
|
+
Reader-rendered directory hint:
|
|
18
|
+
```text
|
|
19
|
+
${CLAUDE_SKILL_DIR}
|
|
22
20
|
```
|
|
21
|
+
|
|
22
|
+
Treat the hint as literal path data, never shell code. If the reader
|
|
23
|
+
replaced it with an absolute directory, use that directory. Otherwise
|
|
24
|
+
use the filesystem path or base directory reported for this loaded
|
|
25
|
+
SKILL.md. Resolve virtual URIs through the reader's native filesystem
|
|
26
|
+
mapping. If available source locations name different directories,
|
|
27
|
+
stop.
|
|
28
|
+
|
|
29
|
+
Bind DEVLYN_SKILL_DIR to that absolute directory. Do not obtain this
|
|
30
|
+
binding from an environment variable, cwd, or another installation.
|
|
31
|
+
Verify its SKILL.md before proceeding. Missing or conflicting source
|
|
32
|
+
identity is BLOCKED:skill-source-unresolved; include the failed path
|
|
33
|
+
when known.
|
|
34
|
+
|
|
35
|
+
Resolve bundled references against this directory. These bindings are
|
|
36
|
+
workflow values: establish them explicitly using each tool or shell's
|
|
37
|
+
literal-path rules, and include their absolute values in every fresh
|
|
38
|
+
worker's prompt, telling it to set them from those values, never from
|
|
39
|
+
its inherited environment. Do not rely on shell state surviving between
|
|
40
|
+
calls.
|
|
41
|
+
|
|
42
|
+
Resolve directory symlinks on DEVLYN_SKILL_DIR before deriving its
|
|
43
|
+
sibling _shared. Bind that directory as DEVLYN_SHARED_DIR. References
|
|
44
|
+
written as _shared/... use this binding. Verify the directory and each
|
|
45
|
+
required resource before use; failure is BLOCKED:shared-dir-unresolved
|
|
46
|
+
with the failed path. Never search another installation.
|
|
47
|
+
|
|
48
|
+
Verify DEVLYN_SHARED_DIR/role-config.py and DEVLYN_SHARED_DIR/engine-doctor.sh before their respective commands. In omp, use `printf '%s\n' skill://devlyn-engines`.
|
|
23
49
|
</runtime_paths>
|
|
24
50
|
|
|
25
51
|
## No args — status + how to choose
|
|
@@ -28,22 +28,40 @@ Read `_shared/runtime-principles.md` (Subtractive-first / Goal-locked / Evidence
|
|
|
28
28
|
</harness_principles>
|
|
29
29
|
|
|
30
30
|
<runtime_paths>
|
|
31
|
-
Resolve
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
echo "BLOCKED:shared-dir-unresolved: $DEVLYN_SKILL_DIR/../_shared" >&2
|
|
37
|
-
exit 1
|
|
38
|
-
fi
|
|
39
|
-
DEVLYN_SHARED_DIR="$(cd "$DEVLYN_SKILL_DIR/../_shared" && pwd)"
|
|
40
|
-
if [ ! -f "$DEVLYN_SHARED_DIR/spec-verify-check.py" ]; then
|
|
41
|
-
echo "BLOCKED:shared-dir-unresolved: $DEVLYN_SHARED_DIR/spec-verify-check.py" >&2
|
|
42
|
-
exit 1
|
|
43
|
-
fi
|
|
31
|
+
Resolve bundled resources from the SKILL.md loaded for this invocation.
|
|
32
|
+
|
|
33
|
+
Reader-rendered directory hint:
|
|
34
|
+
```text
|
|
35
|
+
${CLAUDE_SKILL_DIR}
|
|
44
36
|
```
|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
Treat the hint as literal path data, never shell code. If the reader
|
|
39
|
+
replaced it with an absolute directory, use that directory. Otherwise
|
|
40
|
+
use the filesystem path or base directory reported for this loaded
|
|
41
|
+
SKILL.md. Resolve virtual URIs through the reader's native filesystem
|
|
42
|
+
mapping. If available source locations name different directories,
|
|
43
|
+
stop.
|
|
44
|
+
|
|
45
|
+
Bind DEVLYN_SKILL_DIR to that absolute directory. Do not obtain this
|
|
46
|
+
binding from an environment variable, cwd, or another installation.
|
|
47
|
+
Verify its SKILL.md before proceeding. Missing or conflicting source
|
|
48
|
+
identity is BLOCKED:skill-source-unresolved; include the failed path
|
|
49
|
+
when known.
|
|
50
|
+
|
|
51
|
+
Resolve bundled references against this directory. These bindings are
|
|
52
|
+
workflow values: establish them explicitly using each tool or shell's
|
|
53
|
+
literal-path rules, and include their absolute values in every fresh
|
|
54
|
+
worker's prompt, telling it to set them from those values, never from
|
|
55
|
+
its inherited environment. Do not rely on shell state surviving between
|
|
56
|
+
calls.
|
|
57
|
+
|
|
58
|
+
Resolve directory symlinks on DEVLYN_SKILL_DIR before deriving its
|
|
59
|
+
sibling _shared. Bind that directory as DEVLYN_SHARED_DIR. References
|
|
60
|
+
written as _shared/... use this binding. Verify the directory and each
|
|
61
|
+
required resource before use; failure is BLOCKED:shared-dir-unresolved
|
|
62
|
+
with the failed path. Never search another installation.
|
|
63
|
+
|
|
64
|
+
Verify DEVLYN_SHARED_DIR/spec-verify-check.py before validation. Use `python3 "$DEVLYN_SHARED_DIR/spec-verify-check.py"` for spec validation commands after binding the path in that shell. In omp, use `printf '%s\n' skill://devlyn-ideate`.
|
|
47
65
|
</runtime_paths>
|
|
48
66
|
|
|
49
67
|
<engine_routing>
|
|
@@ -9,19 +9,42 @@ Utility front-end for the intent-queue contract in the project instructions ("In
|
|
|
9
9
|
$ARGUMENTS
|
|
10
10
|
</args>
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
fi
|
|
20
|
-
DEVLYN_SHARED_DIR="$(cd "$DEVLYN_SKILL_DIR/../_shared" && pwd)"
|
|
12
|
+
Before `add` or `drain`, establish the bindings below.
|
|
13
|
+
|
|
14
|
+
Resolve bundled resources from the SKILL.md loaded for this invocation.
|
|
15
|
+
|
|
16
|
+
Reader-rendered directory hint:
|
|
17
|
+
```text
|
|
18
|
+
${CLAUDE_SKILL_DIR}
|
|
21
19
|
```
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
Treat the hint as literal path data, never shell code. If the reader
|
|
22
|
+
replaced it with an absolute directory, use that directory. Otherwise
|
|
23
|
+
use the filesystem path or base directory reported for this loaded
|
|
24
|
+
SKILL.md. Resolve virtual URIs through the reader's native filesystem
|
|
25
|
+
mapping. If available source locations name different directories,
|
|
26
|
+
stop.
|
|
27
|
+
|
|
28
|
+
Bind DEVLYN_SKILL_DIR to that absolute directory. Do not obtain this
|
|
29
|
+
binding from an environment variable, cwd, or another installation.
|
|
30
|
+
Verify its SKILL.md before proceeding. Missing or conflicting source
|
|
31
|
+
identity is BLOCKED:skill-source-unresolved; include the failed path
|
|
32
|
+
when known.
|
|
33
|
+
|
|
34
|
+
Resolve bundled references against this directory. These bindings are
|
|
35
|
+
workflow values: establish them explicitly using each tool or shell's
|
|
36
|
+
literal-path rules, and include their absolute values in every fresh
|
|
37
|
+
worker's prompt, telling it to set them from those values, never from
|
|
38
|
+
its inherited environment. Do not rely on shell state surviving between
|
|
39
|
+
calls.
|
|
40
|
+
|
|
41
|
+
Resolve directory symlinks on DEVLYN_SKILL_DIR before deriving its
|
|
42
|
+
sibling _shared. Bind that directory as DEVLYN_SHARED_DIR. References
|
|
43
|
+
written as _shared/... use this binding. Verify the directory and each
|
|
44
|
+
required resource before use; failure is BLOCKED:shared-dir-unresolved
|
|
45
|
+
with the failed path. Never search another installation.
|
|
46
|
+
|
|
47
|
+
For `add`, verify DEVLYN_SKILL_DIR/scripts/append.py before invoking it. For `drain`, before processing the first item, read and obey ../devlyn-resolve/references/outer-loop.md (its scoped-commit order is binding) and read ../devlyn-resolve/references/task-completion.md, both relative to this bound skill directory. Load the sibling devlyn-resolve/SKILL.md by its absolute path and preserve this bundle's DEVLYN_SHARED_DIR when handing off; do not rediscover resolve by its bare command name. In omp, use `printf '%s\n' skill://devlyn-queue`.
|
|
25
48
|
|
|
26
49
|
Queue state is base's `docs/specs/queue.md` plus owned receipts: for each `$(git rev-parse --git-common-dir)/devlyn-completion/*/receipt.json`, read `git show <ref>:docs/specs/queue.md` from its `recovery_ref` if that ref exists (it is never deleted), else its `branch` if it still exists; an item unmarked on base but `[x]`/`[F]` there counts as that mark. Two different terminal marks for one item stop for inspection. Status and drain selection both use this view.
|
|
27
50
|
|
|
@@ -31,10 +54,10 @@ Read the queue state above (absent `docs/specs/queue.md` → report "queue empty
|
|
|
31
54
|
|
|
32
55
|
## Subcommands
|
|
33
56
|
|
|
34
|
-
- `add <intent text>` —
|
|
57
|
+
- `add <intent text>` — use the Write tool to place the exact full intent in a new file `.devlyn/queue-intent-<unique>.txt` (a name no other add uses, made of letters, digits, `.`, `_` and `-`, e.g. `queue-intent-20261001-1230-k3x9.txt`); do not create it with shell syntax. If the conversation already produced a spec, the file must start with `(spec: docs/specs/<id>/spec.md)`. Then, from the project root, run exactly once `python3 "$DEVLYN_SKILL_DIR/scripts/append.py" .devlyn/queue-intent-<unique>.txt`. The helper consumes that file, appends one `- [ ] <intent>` line at the physical end of `docs/specs/queue.md` under a lock (creating it with its header if missing), and is the sole queue writer. Never edit `docs/specs/queue.md` directly for `add` and never use a direct-edit fallback; a nonzero helper exit is shown to the user and stops the `add`.
|
|
35
58
|
- `drain` — serial drain per the project-instructions contract. For each pending item, in order:
|
|
36
59
|
1. Allocate the owner's absent task branch with `--worktree <absent path>` per `../devlyn-resolve/references/task-completion.md`, and work in that worktree; then spec it if unspecced (the queue entry is the user's go-ahead). Unattended assumptions may only take scope-narrowing, reversible, non-user-visible defaults; material ambiguity (user-visible behavior, data/state semantics, new files/scripts/flags, implementation surface) → mark `[F] needs-review: <question>`, commit that queue transition, and continue.
|
|
37
|
-
2. Bring only the current queue-item delta and linked spec bundle from the queue view into the task worktree, which starts from the fetched remote base with no other local commits, commit that scoped owner baseline, then run
|
|
60
|
+
2. Bring only the current queue-item delta and linked spec bundle from the queue view into the task worktree, which starts from the fetched remote base with no other local commits, commit that scoped owner baseline, then run the sibling devlyn-resolve loaded above with `--spec <path>` hands-free.
|
|
38
61
|
After every resolve invocation, run `python3 "$DEVLYN_SHARED_DIR/terminal-claim-check.py" .`; exit 79 marks `[F] FAILED-INCOMPLETE` from the predicate, never from the session self-report.
|
|
39
62
|
3. Outer loop on the terminal verdict: PASS → mark `[x]`. Findings-backed verdicts (NEEDS_WORK, BLOCKED:repair-budget-exhausted) → amend the spec, commit that scoped amendment, then re-run — at most 3 outer iterations. Infrastructure / invalid-input / engine-availability / implement-empty BLOCKED verdicts are not spec-amendable → mark `[F] <verdict>` immediately.
|
|
40
63
|
4. Commit each terminal `[x]` / `[F]` queue transition before advancing. For successfully archived normal runs, invoke owner completion once after that declared queue-file-only commit; bind it separately from the verified source. Honor local-only/no-push. Failed products never publish. Retain PR/pending workspaces and use a separate owned branch from base for the next item; unavailable safe placement stops the drain with remaining items pending. A product-blocked item otherwise never halts the queue.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Append one normalized pending intent to the project queue."""
|
|
3
|
+
|
|
4
|
+
import argparse
|
|
5
|
+
import os
|
|
6
|
+
import re
|
|
7
|
+
import sys
|
|
8
|
+
from contextlib import contextmanager
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
QUEUE_PATH = Path("docs/specs/queue.md")
|
|
13
|
+
LOCK_PATH = Path(".devlyn/queue.lock")
|
|
14
|
+
# Each `add` writes its own handoff file, so two adds never consume each other's intent.
|
|
15
|
+
HANDOFF = re.compile(r"\.devlyn/queue-intent-[A-Za-z0-9._-]+\.txt")
|
|
16
|
+
MINIMAL_HEADER = b"# Intent Queue\n\n"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@contextmanager
|
|
20
|
+
def queue_lock():
|
|
21
|
+
"""One writer at a time across processes, from creating the queue to the append."""
|
|
22
|
+
LOCK_PATH.parent.mkdir(parents=True, exist_ok=True)
|
|
23
|
+
fd = os.open(LOCK_PATH, os.O_RDWR | os.O_CREAT, 0o644)
|
|
24
|
+
try:
|
|
25
|
+
if os.name == "nt":
|
|
26
|
+
import msvcrt
|
|
27
|
+
|
|
28
|
+
# The CRT locks bytes that exist; give a new lock file its one byte.
|
|
29
|
+
if os.fstat(fd).st_size == 0:
|
|
30
|
+
os.write(fd, b"\0")
|
|
31
|
+
os.lseek(fd, 0, os.SEEK_SET)
|
|
32
|
+
msvcrt.locking(fd, msvcrt.LK_LOCK, 1)
|
|
33
|
+
try:
|
|
34
|
+
yield
|
|
35
|
+
finally:
|
|
36
|
+
os.lseek(fd, 0, os.SEEK_SET)
|
|
37
|
+
msvcrt.locking(fd, msvcrt.LK_UNLCK, 1)
|
|
38
|
+
else:
|
|
39
|
+
import fcntl
|
|
40
|
+
|
|
41
|
+
fcntl.flock(fd, fcntl.LOCK_EX)
|
|
42
|
+
yield
|
|
43
|
+
finally:
|
|
44
|
+
os.close(fd)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def append_intent(queue_path, intent):
|
|
48
|
+
normalized = " ".join(intent.split())
|
|
49
|
+
if not normalized:
|
|
50
|
+
raise ValueError("intent must contain non-whitespace text")
|
|
51
|
+
item = f"- [ ] {normalized}\n".encode("utf-8")
|
|
52
|
+
|
|
53
|
+
with queue_lock():
|
|
54
|
+
if not queue_path.exists():
|
|
55
|
+
queue_path.parent.mkdir(parents=True, exist_ok=True)
|
|
56
|
+
queue_path.write_bytes(MINIMAL_HEADER + item)
|
|
57
|
+
return
|
|
58
|
+
|
|
59
|
+
with queue_path.open("rb") as queue:
|
|
60
|
+
queue.seek(0, 2)
|
|
61
|
+
size = queue.tell()
|
|
62
|
+
if size:
|
|
63
|
+
queue.seek(-1, 2)
|
|
64
|
+
ends_with_newline = queue.read(1) == b"\n"
|
|
65
|
+
else:
|
|
66
|
+
ends_with_newline = True
|
|
67
|
+
|
|
68
|
+
prefix = b"" if ends_with_newline else b"\n"
|
|
69
|
+
with queue_path.open("ab") as queue:
|
|
70
|
+
queue.write(prefix + item)
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def main(argv=None):
|
|
74
|
+
parser = argparse.ArgumentParser(
|
|
75
|
+
description="Append one pending intent at the physical end of docs/specs/queue.md."
|
|
76
|
+
)
|
|
77
|
+
parser.add_argument("handoff", type=Path, help=".devlyn/queue-intent-<unique>.txt, relative to the project root")
|
|
78
|
+
args = parser.parse_args(argv)
|
|
79
|
+
if not HANDOFF.fullmatch(args.handoff.as_posix()):
|
|
80
|
+
parser.error(f"handoff must be .devlyn/queue-intent-<unique>.txt: {args.handoff}")
|
|
81
|
+
try:
|
|
82
|
+
try:
|
|
83
|
+
intent = args.handoff.read_text(encoding="utf-8")
|
|
84
|
+
finally:
|
|
85
|
+
args.handoff.unlink(missing_ok=True)
|
|
86
|
+
append_intent(QUEUE_PATH, intent)
|
|
87
|
+
except (OSError, UnicodeError, ValueError) as error:
|
|
88
|
+
print(f"queue add failed: {error}", file=sys.stderr)
|
|
89
|
+
return 1
|
|
90
|
+
return 0
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
if __name__ == "__main__":
|
|
94
|
+
raise SystemExit(main())
|