xdrs-core 0.41.0 → 0.41.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.
|
@@ -15,7 +15,7 @@ test('003-write-skill creates a devops skill package', async () => {
|
|
|
15
15
|
...copilotCmd(REPO_ROOT),
|
|
16
16
|
},
|
|
17
17
|
'Create a skill with instructions on how to do a call to a customer during a marketing campaign: - look for the phone number in the CRM opportunity, - read the proposal to be offered, - make the call, - maintain a friendly and professional tone, - report the outcome on CRM, - say "Thank you for your time".',
|
|
18
|
-
'Verify that SKILL.md was created under .xdrs/_local/bdrs/
|
|
18
|
+
'Verify that SKILL.md was created under .xdrs/_local/bdrs/operations/skills and has instructions about calling a customer, especifically about the tone of voice',
|
|
19
19
|
null,
|
|
20
20
|
true
|
|
21
21
|
);
|
package/lib/lint.js
CHANGED
|
@@ -12,7 +12,7 @@ const TYPE_TO_ID = {
|
|
|
12
12
|
|
|
13
13
|
const ALLOWED_SUBJECTS = {
|
|
14
14
|
adrs: new Set(['principles', 'application', 'data', 'platform', 'operations', 'governance']),
|
|
15
|
-
bdrs: new Set(['principles', 'product', '
|
|
15
|
+
bdrs: new Set(['principles', 'product', 'operations', 'governance', 'finance']),
|
|
16
16
|
edrs: new Set(['principles', 'application', 'data', 'platform', 'operations', 'governance'])
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -439,7 +439,7 @@ function lintScopeIndexFrontmatter(scopeIndexPath, scopeName, errors, xdrsRoot,
|
|
|
439
439
|
}
|
|
440
440
|
const followedIndexPath = path.join(xdrsRoot, entry, 'index.md');
|
|
441
441
|
if (!existsFile(followedIndexPath)) {
|
|
442
|
-
|
|
442
|
+
errors.push(`Scope index frontmatter follows references scope "${entry}" which does not exist in the workspace: ${toDisplayPath(scopeIndexPath)} [_core-adr-policy-001]`);
|
|
443
443
|
} else {
|
|
444
444
|
const followedContent = fs.readFileSync(followedIndexPath, 'utf8');
|
|
445
445
|
const followedTypeMatch = followedContent.match(/^scope-type:\s*(.+)$/m);
|
package/lib/lint.test.js
CHANGED
|
@@ -1341,7 +1341,7 @@ test('reports invalid follows value in scope index frontmatter', () => {
|
|
|
1341
1341
|
expect(result.errors.join('\n')).toContain('Scope index frontmatter follows must be a core scope name or list of core scope names');
|
|
1342
1342
|
});
|
|
1343
1343
|
|
|
1344
|
-
test('
|
|
1344
|
+
test('reports error when follows references a scope not in workspace', () => {
|
|
1345
1345
|
const workspaceRoot = createWorkspace('follows-missing-scope', {
|
|
1346
1346
|
'.xdrs/index.md': rootIndex(['[myteam](myteam/index.md)']),
|
|
1347
1347
|
'.xdrs/myteam/index.md': '---\nscope-type: standard\nname: myteam\ndescription: Team.\napply-to: Test team\nvalid-from: 2026-01-01\nfollows: nonexistent-core\n---\n\n# myteam Scope Overview\n\n[ADRs](adrs/index.md)\n',
|
|
@@ -1351,8 +1351,8 @@ test('marks scope as read-only when follows references a -core scope not in work
|
|
|
1351
1351
|
|
|
1352
1352
|
const result = lintWorkspace(workspaceRoot, { ignoreExternal: false });
|
|
1353
1353
|
|
|
1354
|
-
expect(result.errors.join('\n')).
|
|
1355
|
-
expect(result.readOnlyScopes.has('myteam')).toBe(
|
|
1354
|
+
expect(result.errors.join('\n')).toContain('follows references scope "nonexistent-core" which does not exist in the workspace');
|
|
1355
|
+
expect(result.readOnlyScopes.has('myteam')).toBe(false);
|
|
1356
1356
|
});
|
|
1357
1357
|
|
|
1358
1358
|
test('accepts follows scope that exists in workspace', () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xdrs-core",
|
|
3
|
-
"version": "0.41.
|
|
3
|
+
"version": "0.41.1",
|
|
4
4
|
"description": "A framework to structure, compile and distribute Architectural (ADR), Business (BDR), and Engineering (EDR) decision records contents so that AI agents and humans can reliably find and use them with hierarchical scopes and controlled rollout in the format of distributable versioned packages.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|