Skip to content

Commit ea714e9

Browse files
authored
Merge pull request #775 from constructive-io/devin/1772607063-skills-workspace-root
feat: generate skills to workspace root with composable naming and YAML frontmatter
2 parents e42311e + 7ab07f1 commit ea714e9

File tree

11 files changed

+395
-86
lines changed

11 files changed

+395
-86
lines changed

graphql/codegen/src/__tests__/codegen/__snapshots__/cli-generator.test.ts.snap

Lines changed: 133 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,12 @@ No developer or entity involved in creating this software will be liable for any
362362
`;
363363

364364
exports[`cli docs generator generates CLI skill files 1`] = `
365-
"# myapp-context
365+
"---
366+
name: cli-context
367+
description: Manage API endpoint contexts for myapp
368+
---
369+
370+
# cli-context
366371

367372
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
368373

@@ -396,7 +401,12 @@ myapp context list
396401
`;
397402

398403
exports[`cli docs generator generates CLI skill files 2`] = `
399-
"# myapp-auth
404+
"---
405+
name: cli-auth
406+
description: Manage authentication tokens for myapp
407+
---
408+
409+
# cli-auth
400410

401411
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
402412

@@ -427,7 +437,12 @@ myapp auth status
427437
`;
428438

429439
exports[`cli docs generator generates CLI skill files 3`] = `
430-
"# myapp-car
440+
"---
441+
name: cli-default-car
442+
description: CRUD operations for Car records via myapp CLI
443+
---
444+
445+
# cli-default-car
431446

432447
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
433448

@@ -478,7 +493,12 @@ myapp car delete --id <value>
478493
`;
479494

480495
exports[`cli docs generator generates CLI skill files 4`] = `
481-
"# myapp-driver
496+
"---
497+
name: cli-default-driver
498+
description: CRUD operations for Driver records via myapp CLI
499+
---
500+
501+
# cli-default-driver
482502

483503
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
484504

@@ -529,7 +549,12 @@ myapp driver delete --id <value>
529549
`;
530550

531551
exports[`cli docs generator generates CLI skill files 5`] = `
532-
"# myapp-current-user
552+
"---
553+
name: cli-default-current-user
554+
description: Get the currently authenticated user
555+
---
556+
557+
# cli-default-current-user
533558

534559
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
535560

@@ -552,7 +577,12 @@ myapp current-user
552577
`;
553578

554579
exports[`cli docs generator generates CLI skill files 6`] = `
555-
"# myapp-login
580+
"---
581+
name: cli-default-login
582+
description: Authenticate a user
583+
---
584+
585+
# cli-default-login
556586

557587
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
558588

@@ -1781,7 +1811,12 @@ No developer or entity involved in creating this software will be liable for any
17811811
`;
17821812

17831813
exports[`hooks docs generator generates hooks skill files 1`] = `
1784-
"# hooks-car
1814+
"---
1815+
name: hooks-default-car
1816+
description: React Query hooks for Car data operations
1817+
---
1818+
1819+
# hooks-default-car
17851820

17861821
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
17871822

@@ -1819,7 +1854,12 @@ mutate({ make: '<value>', model: '<value>', year: '<value>', isElectric: '<value
18191854
`;
18201855

18211856
exports[`hooks docs generator generates hooks skill files 2`] = `
1822-
"# hooks-driver
1857+
"---
1858+
name: hooks-default-driver
1859+
description: React Query hooks for Driver data operations
1860+
---
1861+
1862+
# hooks-default-driver
18231863

18241864
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
18251865

@@ -1857,7 +1897,12 @@ mutate({ name: '<value>', licenseNumber: '<value>' });
18571897
`;
18581898

18591899
exports[`hooks docs generator generates hooks skill files 3`] = `
1860-
"# hooks-currentUser
1900+
"---
1901+
name: hooks-default-current-user
1902+
description: Get the currently authenticated user
1903+
---
1904+
1905+
# hooks-default-current-user
18611906

18621907
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
18631908

@@ -1880,7 +1925,12 @@ const { data, isLoading } = useCurrentUserQuery();
18801925
`;
18811926

18821927
exports[`hooks docs generator generates hooks skill files 4`] = `
1883-
"# hooks-login
1928+
"---
1929+
name: hooks-default-login
1930+
description: Authenticate a user
1931+
---
1932+
1933+
# hooks-default-login
18841934

18851935
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
18861936

@@ -2905,7 +2955,12 @@ No developer or entity involved in creating this software will be liable for any
29052955
exports[`multi-target cli docs generates multi-target skills 1`] = `
29062956
[
29072957
{
2908-
"content": "# myapp-context
2958+
"content": "---
2959+
name: cli-context
2960+
description: Manage API endpoint contexts for myapp (multi-target: auth, members, app)
2961+
---
2962+
2963+
# cli-context
29092964

29102965
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
29112966

@@ -2944,10 +2999,15 @@ myapp context list
29442999
myapp context use staging
29453000
\`\`\`
29463001
",
2947-
"fileName": "skills/context.md",
3002+
"fileName": "cli-context/SKILL.md",
29483003
},
29493004
{
2950-
"content": "# myapp-credentials
3005+
"content": "---
3006+
name: cli-auth
3007+
description: Manage authentication tokens for myapp (shared across all targets)
3008+
---
3009+
3010+
# cli-auth
29513011

29523012
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
29533013

@@ -2975,10 +3035,15 @@ myapp credentials set-token eyJhbGciOiJIUzI1NiIs...
29753035
myapp credentials status
29763036
\`\`\`
29773037
",
2978-
"fileName": "skills/credentials.md",
3038+
"fileName": "cli-auth/SKILL.md",
29793039
},
29803040
{
2981-
"content": "# myapp-auth:user
3041+
"content": "---
3042+
name: cli-auth-user
3043+
description: CRUD operations for User records via myapp CLI (auth target)
3044+
---
3045+
3046+
# cli-auth-user
29823047

29833048
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
29843049

@@ -3014,10 +3079,15 @@ myapp auth:user create --email "value" --name "value"
30143079
myapp auth:user get --id <value>
30153080
\`\`\`
30163081
",
3017-
"fileName": "skills/auth-user.md",
3082+
"fileName": "cli-auth-user/SKILL.md",
30183083
},
30193084
{
3020-
"content": "# myapp-auth:current-user
3085+
"content": "---
3086+
name: cli-auth-current-user
3087+
description: Get the currently authenticated user (auth target)
3088+
---
3089+
3090+
# cli-auth-current-user
30213091

30223092
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
30233093

@@ -3037,10 +3107,15 @@ myapp auth:current-user
30373107
myapp auth:current-user
30383108
\`\`\`
30393109
",
3040-
"fileName": "skills/auth-current-user.md",
3110+
"fileName": "cli-auth-current-user/SKILL.md",
30413111
},
30423112
{
3043-
"content": "# myapp-auth:login
3113+
"content": "---
3114+
name: cli-auth-login
3115+
description: Authenticate a user (auth target)
3116+
---
3117+
3118+
# cli-auth-login
30443119

30453120
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
30463121

@@ -3061,10 +3136,15 @@ myapp auth:login --email <value> --password <value> --save-token
30613136
myapp auth:login --email <value> --password <value>
30623137
\`\`\`
30633138
",
3064-
"fileName": "skills/auth-login.md",
3139+
"fileName": "cli-auth-login/SKILL.md",
30653140
},
30663141
{
3067-
"content": "# myapp-members:member
3142+
"content": "---
3143+
name: cli-members-member
3144+
description: CRUD operations for Member records via myapp CLI (members target)
3145+
---
3146+
3147+
# cli-members-member
30683148

30693149
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
30703150

@@ -3100,10 +3180,15 @@ myapp members:member create --role "value"
31003180
myapp members:member get --id <value>
31013181
\`\`\`
31023182
",
3103-
"fileName": "skills/members-member.md",
3183+
"fileName": "cli-members-member/SKILL.md",
31043184
},
31053185
{
3106-
"content": "# myapp-app:car
3186+
"content": "---
3187+
name: cli-app-car
3188+
description: CRUD operations for Car records via myapp CLI (app target)
3189+
---
3190+
3191+
# cli-app-car
31073192

31083193
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
31093194

@@ -3139,7 +3224,7 @@ myapp app:car create --make "value" --model "value" --year "value" --isElectric
31393224
myapp app:car get --id <value>
31403225
\`\`\`
31413226
",
3142-
"fileName": "skills/app-car.md",
3227+
"fileName": "cli-app-car/SKILL.md",
31433228
},
31443229
]
31453230
`;
@@ -4502,7 +4587,12 @@ No developer or entity involved in creating this software will be liable for any
45024587
`;
45034588

45044589
exports[`orm docs generator generates ORM skill files 1`] = `
4505-
"# orm-car
4590+
"---
4591+
name: orm-default-car
4592+
description: ORM operations for Car records
4593+
---
4594+
4595+
# orm-default-car
45064596

45074597
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
45084598

@@ -4540,7 +4630,12 @@ const item = await db.car.create({
45404630
`;
45414631

45424632
exports[`orm docs generator generates ORM skill files 2`] = `
4543-
"# orm-driver
4633+
"---
4634+
name: orm-default-driver
4635+
description: ORM operations for Driver records
4636+
---
4637+
4638+
# orm-default-driver
45444639

45454640
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
45464641

@@ -4578,7 +4673,12 @@ const item = await db.driver.create({
45784673
`;
45794674

45804675
exports[`orm docs generator generates ORM skill files 3`] = `
4581-
"# orm-currentUser
4676+
"---
4677+
name: orm-default-current-user
4678+
description: Get the currently authenticated user
4679+
---
4680+
4681+
# orm-default-current-user
45824682

45834683
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
45844684

@@ -4601,7 +4701,12 @@ const result = await db.query.currentUser().execute();
46014701
`;
46024702

46034703
exports[`orm docs generator generates ORM skill files 4`] = `
4604-
"# orm-login
4704+
"---
4705+
name: orm-default-login
4706+
description: Authenticate a user
4707+
---
4708+
4709+
# orm-default-login
46054710

46064711
<!-- @constructive-io/graphql-codegen - DO NOT EDIT -->
46074712

graphql/codegen/src/__tests__/codegen/cli-generator.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ describe('cli docs generator', () => {
285285
});
286286

287287
it('generates CLI skill files', () => {
288-
const skills = generateCliSkills([carTable, driverTable], allCustomOps, 'myapp');
288+
const skills = generateCliSkills([carTable, driverTable], allCustomOps, 'myapp', 'default');
289289
expect(skills.length).toBeGreaterThan(0);
290290
for (const sf of skills) {
291291
expect(sf.content).toMatchSnapshot();
@@ -317,7 +317,7 @@ describe('orm docs generator', () => {
317317
});
318318

319319
it('generates ORM skill files', () => {
320-
const skills = generateOrmSkills([carTable, driverTable], allCustomOps);
320+
const skills = generateOrmSkills([carTable, driverTable], allCustomOps, 'default');
321321
expect(skills.length).toBeGreaterThan(0);
322322
for (const sf of skills) {
323323
expect(sf.content).toMatchSnapshot();
@@ -349,7 +349,7 @@ describe('hooks docs generator', () => {
349349
});
350350

351351
it('generates hooks skill files', () => {
352-
const skills = generateHooksSkills([carTable, driverTable], allCustomOps);
352+
const skills = generateHooksSkills([carTable, driverTable], allCustomOps, 'default');
353353
expect(skills.length).toBeGreaterThan(0);
354354
for (const sf of skills) {
355355
expect(sf.content).toMatchSnapshot();

0 commit comments

Comments
 (0)