transskill 0.2.0 → 0.2.2

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.
Files changed (61) hide show
  1. package/README.md +162 -32
  2. package/README.zh.md +134 -4
  3. package/dist/audit/auditor-registry.d.ts +6 -0
  4. package/dist/audit/auditor-registry.d.ts.map +1 -0
  5. package/dist/audit/auditor-registry.js +17 -0
  6. package/dist/audit/auditor-registry.js.map +1 -0
  7. package/dist/audit/auditor.interface.d.ts +59 -0
  8. package/dist/audit/auditor.interface.d.ts.map +1 -0
  9. package/dist/audit/auditor.interface.js +36 -0
  10. package/dist/audit/auditor.interface.js.map +1 -0
  11. package/dist/audit/index.d.ts +39 -0
  12. package/dist/audit/index.d.ts.map +1 -0
  13. package/dist/audit/index.js +155 -0
  14. package/dist/audit/index.js.map +1 -0
  15. package/dist/audit/reporter/console-reporter.d.ts +4 -0
  16. package/dist/audit/reporter/console-reporter.d.ts.map +1 -0
  17. package/dist/audit/reporter/console-reporter.js +107 -0
  18. package/dist/audit/reporter/console-reporter.js.map +1 -0
  19. package/dist/audit/rules/dangerous-commands.d.ts +15 -0
  20. package/dist/audit/rules/dangerous-commands.d.ts.map +1 -0
  21. package/dist/audit/rules/dangerous-commands.js +189 -0
  22. package/dist/audit/rules/dangerous-commands.js.map +1 -0
  23. package/dist/audit/rules/prompt-injection.d.ts +15 -0
  24. package/dist/audit/rules/prompt-injection.d.ts.map +1 -0
  25. package/dist/audit/rules/prompt-injection.js +65 -0
  26. package/dist/audit/rules/prompt-injection.js.map +1 -0
  27. package/dist/audit/rules/suspicious-urls.d.ts +14 -0
  28. package/dist/audit/rules/suspicious-urls.d.ts.map +1 -0
  29. package/dist/audit/rules/suspicious-urls.js +42 -0
  30. package/dist/audit/rules/suspicious-urls.js.map +1 -0
  31. package/dist/audit/scanner/directory-scanner.d.ts +40 -0
  32. package/dist/audit/scanner/directory-scanner.d.ts.map +1 -0
  33. package/dist/audit/scanner/directory-scanner.js +288 -0
  34. package/dist/audit/scanner/directory-scanner.js.map +1 -0
  35. package/dist/audit/scanner/instruction-scanner.d.ts +20 -0
  36. package/dist/audit/scanner/instruction-scanner.d.ts.map +1 -0
  37. package/dist/audit/scanner/instruction-scanner.js +147 -0
  38. package/dist/audit/scanner/instruction-scanner.js.map +1 -0
  39. package/dist/audit/scanner/mcp-scanner.d.ts +17 -0
  40. package/dist/audit/scanner/mcp-scanner.d.ts.map +1 -0
  41. package/dist/audit/scanner/mcp-scanner.js +181 -0
  42. package/dist/audit/scanner/mcp-scanner.js.map +1 -0
  43. package/dist/audit/scanner/permission-scanner.d.ts +19 -0
  44. package/dist/audit/scanner/permission-scanner.d.ts.map +1 -0
  45. package/dist/audit/scanner/permission-scanner.js +143 -0
  46. package/dist/audit/scanner/permission-scanner.js.map +1 -0
  47. package/dist/index.js +86 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/mapper/default.mapper.js +2 -2
  50. package/dist/mapper/default.mapper.js.map +1 -1
  51. package/dist/parser/cursor-rules.parser.d.ts +5 -0
  52. package/dist/parser/cursor-rules.parser.d.ts.map +1 -1
  53. package/dist/parser/cursor-rules.parser.js +28 -5
  54. package/dist/parser/cursor-rules.parser.js.map +1 -1
  55. package/dist/renderer/cursor-rules.renderer.d.ts.map +1 -1
  56. package/dist/renderer/cursor-rules.renderer.js +3 -5
  57. package/dist/renderer/cursor-rules.renderer.js.map +1 -1
  58. package/dist/renderer/mdc.renderer.d.ts.map +1 -1
  59. package/dist/renderer/mdc.renderer.js +3 -2
  60. package/dist/renderer/mdc.renderer.js.map +1 -1
  61. package/package.json +1 -1
@@ -5,6 +5,11 @@ import { TransSkillError } from '../core/errors.js';
5
5
  *
6
6
  * .cursorrules is a plain text file with instructions for Cursor IDE.
7
7
  * It has no frontmatter — the entire content is treated as instructions.
8
+ *
9
+ * Convention: first line may be an optional `# Title` heading.
10
+ * - If present, it's used as the description and stripped from instructions.
11
+ * - If absent, a fallback description is generated from the filename.
12
+ *
8
13
  * Used by: Cursor IDE (legacy format)
9
14
  */
10
15
  export class CursorRulesParser {
@@ -13,18 +18,36 @@ export class CursorRulesParser {
13
18
  return filePath?.endsWith('.cursorrules') ?? false;
14
19
  }
15
20
  parse(content, filePath) {
16
- const instructions = content.trim();
21
+ const trimmed = content.trim();
17
22
  // Derive name from filename (or parent directory)
18
23
  const name = filePath
19
24
  ? basename(filePath, extname(filePath))
20
25
  : 'untitled-rules';
21
- // Extract first meaningful line as description
22
- const firstLine = instructions.split('\n')[0]?.replace(/^[#\s]*/, '').trim() || '';
23
- const description = firstLine.length > 0 ? firstLine : `Cursor rules from ${name}`;
26
+ const lines = trimmed.split('\n');
27
+ const firstRaw = lines[0] ?? '';
28
+ // Detect whether the first line looks like a markdown heading
29
+ const headingMatch = firstRaw.match(/^#+\s+(.+)/);
30
+ if (headingMatch) {
31
+ // Title line: use as description, strip from instructions
32
+ const description = headingMatch[1].trim();
33
+ const instructions = lines.slice(1).join('\n').trim();
34
+ return {
35
+ name,
36
+ description,
37
+ instructions,
38
+ metadata: {
39
+ sourceFormat: '.cursorrules',
40
+ },
41
+ platformSpecific: {},
42
+ };
43
+ }
44
+ // No heading found — treat everything as instructions.
45
+ // Derive a sensible fallback description from the filename.
46
+ const description = `Cursor rules for ${name}`;
24
47
  return {
25
48
  name,
26
49
  description,
27
- instructions,
50
+ instructions: trimmed,
28
51
  metadata: {
29
52
  sourceFormat: '.cursorrules',
30
53
  },
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-rules.parser.js","sourceRoot":"","sources":["../../src/parser/cursor-rules.parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACnB,MAAM,GAAe,cAAc,CAAC;IAE7C,MAAM,CAAC,QAAgB,EAAE,QAAiB;QACxC,OAAO,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,QAAiB;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpC,kDAAkD;QAClD,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,gBAAgB,CAAC;QAErB,+CAA+C;QAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACnF,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC;QAEnF,OAAO;YACL,IAAI;YACJ,WAAW;YACX,YAAY;YACZ,QAAQ,EAAE;gBACR,YAAY,EAAE,cAAc;aAC7B;YACD,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,MAAM,IAAI,eAAe,CACvB,wEAAwE,EACxE,mBAAmB,EACnB,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"cursor-rules.parser.js","sourceRoot":"","sources":["../../src/parser/cursor-rules.parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,iBAAiB;IACnB,MAAM,GAAe,cAAc,CAAC;IAE7C,MAAM,CAAC,QAAgB,EAAE,QAAiB;QACxC,OAAO,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,QAAiB;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,kDAAkD;QAClD,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,gBAAgB,CAAC;QAErB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhC,8DAA8D;QAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,YAAY,EAAE,CAAC;YACjB,0DAA0D;YAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,OAAO;gBACL,IAAI;gBACJ,WAAW;gBACX,YAAY;gBACZ,QAAQ,EAAE;oBACR,YAAY,EAAE,cAAc;iBAC7B;gBACD,gBAAgB,EAAE,EAAE;aACrB,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,4DAA4D;QAC5D,MAAM,WAAW,GAAG,oBAAoB,IAAI,EAAE,CAAC;QAC/C,OAAO;YACL,IAAI;YACJ,WAAW;YACX,YAAY,EAAE,OAAO;YACrB,QAAQ,EAAE;gBACR,YAAY,EAAE,cAAc;aAC7B;YACD,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,MAAM,IAAI,eAAe,CACvB,wEAAwE,EACxE,mBAAmB,EACnB,EAAE,OAAO,EAAE,CACZ,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-rules.renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/cursor-rules.renderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGjH,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAkB;IAC7C,QAAQ,CAAC,SAAS,kBAAkB;IAEpC,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAYxC,eAAe,CACb,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,MAAM,GACjB,yBAAyB;CA6B7B"}
1
+ {"version":3,"file":"cursor-rules.renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/cursor-rules.renderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGjH,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAkB;IAC7C,QAAQ,CAAC,SAAS,kBAAkB;IAEpC,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAWxC,eAAe,CACb,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,MAAM,GACjB,yBAAyB;CA6B7B"}
@@ -6,11 +6,9 @@ export class CursorRulesRenderer {
6
6
  extension = '.cursorrules';
7
7
  render(skill) {
8
8
  const parts = [];
9
- parts.push(`# ${skill.name}`);
10
- if (skill.description) {
11
- parts.push(`# ${skill.description}`);
12
- }
13
- parts.push(`# Generated by TransSkill from ${skill.metadata.sourceFormat}`);
9
+ // Use description as heading (allows clean round-trip re-parse)
10
+ const heading = skill.description ? skill.description : skill.name;
11
+ parts.push(`# ${heading}`);
14
12
  parts.push('');
15
13
  parts.push(skill.instructions || '');
16
14
  return parts.join('\n').trim() + '\n';
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-rules.renderer.js","sourceRoot":"","sources":["../../src/renderer/cursor-rules.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,OAAO,mBAAmB;IACrB,MAAM,GAAe,cAAc,CAAC;IACpC,SAAS,GAAG,cAAc,CAAC;IAEpC,MAAM,CAAC,KAAwB;QAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IACxC,CAAC;IAED,eAAe,CACb,QAAwB,EACxB,KAAwB,EACxB,UAAkB;QAElB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,IAAI,cAAc,CAAC,CAAC;QACnE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,UAAU;SACzB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"cursor-rules.renderer.js","sourceRoot":"","sources":["../../src/renderer/cursor-rules.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,OAAO,mBAAmB;IACrB,MAAM,GAAe,cAAc,CAAC;IACpC,SAAS,GAAG,cAAc,CAAC;IAEpC,MAAM,CAAC,KAAwB;QAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,gEAAgE;QAChE,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;IACxC,CAAC;IAED,eAAe,CACb,QAAwB,EACxB,KAAwB,EACxB,UAAkB;QAElB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,IAAI,cAAc,CAAC,CAAC;QACnE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,UAAU;SACzB,CAAC;IACJ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"mdc.renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/mdc.renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGjH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAU;IACrC,QAAQ,CAAC,SAAS,UAAU;IAE5B,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAgBxC,eAAe,CACb,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,MAAM,GACjB,yBAAyB;CAyB7B"}
1
+ {"version":3,"file":"mdc.renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/mdc.renderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAGjH,qBAAa,WAAY,YAAW,QAAQ;IAC1C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAU;IACrC,QAAQ,CAAC,SAAS,UAAU;IAE5B,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAiBxC,eAAe,CACb,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,iBAAiB,EACxB,UAAU,EAAE,MAAM,GACjB,yBAAyB;CAyB7B"}
@@ -13,8 +13,9 @@ export class MdcRenderer {
13
13
  if (cursor?.globs && cursor.globs.length > 0) {
14
14
  frontmatter.globs = cursor.globs.length === 1 ? cursor.globs[0] : cursor.globs.join(', ');
15
15
  }
16
- if (cursor?.alwaysApply !== undefined) {
17
- frontmatter.alwaysApply = cursor.alwaysApply;
16
+ // Only emit alwaysApply when true — false is the Cursor default
17
+ if (cursor?.alwaysApply === true) {
18
+ frontmatter.alwaysApply = true;
18
19
  }
19
20
  return matter.stringify(skill.instructions || '', frontmatter);
20
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mdc.renderer.js","sourceRoot":"","sources":["../../src/renderer/mdc.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,OAAO,WAAW;IACb,MAAM,GAAe,MAAM,CAAC;IAC5B,SAAS,GAAG,MAAM,CAAC;IAE5B,MAAM,CAAC,KAAwB;QAC7B,MAAM,WAAW,GAA4B;YAC3C,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC7C,IAAI,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,MAAM,EAAE,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC/C,CAAC;QAED,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,eAAe,CACb,QAAwB,EACxB,KAAwB,EACxB,UAAkB;QAElB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QACzD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,UAAU;SACzB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"mdc.renderer.js","sourceRoot":"","sources":["../../src/renderer/mdc.renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,MAAM,MAAM,aAAa,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE/E,MAAM,OAAO,WAAW;IACb,MAAM,GAAe,MAAM,CAAC;IAC5B,SAAS,GAAG,MAAM,CAAC;IAE5B,MAAM,CAAC,KAAwB;QAC7B,MAAM,WAAW,GAA4B;YAC3C,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;QAEF,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC7C,IAAI,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,CAAC;QACD,gEAAgE;QAChE,IAAI,MAAM,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;YACjC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,eAAe,CACb,QAAwB,EACxB,KAAwB,EACxB,UAAkB;QAElB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;QACzD,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU,EAAE,OAAO;YACnB,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,UAAU;SACzB,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "transskill",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Cross-platform AI agent skill converter - Write once, run on any agent",
5
5
  "bin": {
6
6
  "transskill": "dist/index.js"