@1aboveio/skills 1.0.5 → 1.0.7

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 (78) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -3
  3. package/skills/app-dev/airflow/SKILL.md +1 -1
  4. package/skills/app-dev/android-foundation/SKILL.md +1 -1
  5. package/skills/app-dev/app-debug/SKILL.md +1 -1
  6. package/skills/app-dev/better-auth/SKILL.md +1 -1
  7. package/skills/app-dev/data-catalog/SKILL.md +1 -1
  8. package/skills/app-dev/data-quality/SKILL.md +1 -1
  9. package/skills/app-dev/ios-foundation/SKILL.md +1 -1
  10. package/skills/app-dev/monorepo/SKILL.md +1 -1
  11. package/skills/app-dev/nextjs-fullstack/SKILL.md +1 -1
  12. package/skills/app-dev/prisma-setup/SKILL.md +1 -1
  13. package/skills/app-dev/pyspark/SKILL.md +1 -1
  14. package/skills/app-dev/python-backend/SKILL.md +1 -1
  15. package/skills/app-dev/shadcn/SKILL.md +1 -1
  16. package/skills/app-dev/zod-v4/SKILL.md +1 -1
  17. package/skills/cicd/cloud-build/SKILL.md +1 -1
  18. package/skills/cicd/cloud-debug/SKILL.md +1 -1
  19. package/skills/cicd/cloud-deploy/SKILL.md +1 -1
  20. package/skills/cicd/docker/SKILL.md +1 -1
  21. package/skills/cicd/github-actions/SKILL.md +1 -1
  22. package/skills/cicd/github-flow/SKILL.md +1 -1
  23. package/skills/cicd/google-cloud/SKILL.md +1 -1
  24. package/skills/cicd/mergify/SKILL.md +1 -1
  25. package/skills/cicd/podman/SKILL.md +1 -1
  26. package/skills/content/article-review/SKILL.md +1 -1
  27. package/skills/content/article-to-image/SKILL.md +1 -1
  28. package/skills/content/flowchart-svg/SKILL.md +1 -1
  29. package/skills/content/image-gen/SKILL.md +1 -1
  30. package/skills/content/mermaid/SKILL.md +1 -1
  31. package/skills/content/wechat-article-writer/SKILL.md +1 -1
  32. package/skills/content/wechat-publisher/SKILL.md +1 -1
  33. package/skills/content/wechat-search/SKILL.md +1 -1
  34. package/skills/content/xai-search/SKILL.md +1 -1
  35. package/skills/core/distill-writing/SKILL.md +22 -4
  36. package/skills/core/distill-writing/references/extraction.md +19 -3
  37. package/skills/core/doc-to-md/SKILL.md +1 -1
  38. package/skills/core/editorial-review/SKILL.md +1 -1
  39. package/skills/core/house-style/SKILL.md +2 -1
  40. package/skills/core/house-style/references/persistence.md +93 -0
  41. package/skills/core/house-style/references/rules.md +22 -6
  42. package/skills/core/house-style/templates/gap-analysis.md +1 -1
  43. package/skills/core/plain-language/SKILL.md +40 -4
  44. package/skills/core/polish-cn/SKILL.md +1 -1
  45. package/skills/core/reg-parser/SKILL.md +2 -2
  46. package/skills/core/reg-parser/scripts/dump_checklist.py +1 -1
  47. package/skills/core/terminology/SKILL.md +1 -1
  48. package/skills/core/write-doc/SKILL.md +31 -12
  49. package/skills/core/write-doc/references/bilingual.md +10 -1
  50. package/skills/core/write-doc/references/compliance-reports.md +163 -0
  51. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/audit-report-template.md +2 -2
  52. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/external-assessment-template.md +21 -5
  53. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/management-report-template.md +7 -2
  54. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/vars-report-template.md +6 -3
  55. package/skills/engineering/better-review/SKILL.md +1 -1
  56. package/skills/engineering/contributing/SKILL.md +1 -1
  57. package/skills/engineering/e2e-test/SKILL.md +1 -1
  58. package/skills/engineering/engineering-runtime/SKILL.md +1 -1
  59. package/skills/engineering/engineering-runtime/coherence/workflow.json +13 -13
  60. package/skills/engineering/ensure-coverage/SKILL.md +1 -1
  61. package/skills/engineering/golden-path/SKILL.md +1 -1
  62. package/skills/engineering/harness-runtime/SKILL.md +1 -1
  63. package/skills/engineering/resolve-issues/SKILL.md +1 -1
  64. package/skills/engineering/resolve-release/SKILL.md +1 -1
  65. package/skills/engineering/rush-issues/SKILL.md +1 -1
  66. package/skills/engineering/rush-release/SKILL.md +1 -1
  67. package/skills/engineering/test-quality/SKILL.md +1 -1
  68. package/skills/risk-compliance/compliance-audit/SKILL.md +1 -1
  69. package/skills/risk-compliance/contract-compare/SKILL.md +1 -1
  70. package/skills/risk-compliance/contract-review/SKILL.md +1 -1
  71. package/skills/risk-compliance/doc-authenticity/SKILL.md +1 -1
  72. package/skills/risk-compliance/fraud-analysis/SKILL.md +1 -1
  73. package/skills/risk-compliance/payment-analysis/SKILL.md +1 -1
  74. package/skills/risk-compliance/similar-domain/SKILL.md +1 -1
  75. package/skills/risk-compliance/tld-detection/SKILL.md +1 -1
  76. package/skills/risk-compliance/report-writing/LICENSE +0 -3
  77. package/skills/risk-compliance/report-writing/SKILL.md +0 -220
  78. package/skills/risk-compliance/report-writing/release-check.mjs +0 -93
@@ -1,93 +0,0 @@
1
- #!/usr/bin/env node
2
- import { spawnSync } from 'node:child_process';
3
- import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
4
- import { homedir } from 'node:os';
5
- import { dirname, join } from 'node:path';
6
- import { fileURLToPath } from 'node:url';
7
-
8
- const DAY_MS = 24 * 60 * 60 * 1000;
9
- const WEEK_MS = 7 * DAY_MS;
10
- const here = dirname(fileURLToPath(import.meta.url));
11
-
12
- function readJson(path, fallback = {}) {
13
- try { return JSON.parse(readFileSync(path, 'utf8')); } catch { return fallback; }
14
- }
15
-
16
- function frontmatterValue(text, key) {
17
- const frontmatter = /^---\n([\s\S]*?)\n---/.exec(text)?.[1] ?? '';
18
- const match = new RegExp('^' + key + ':\\s*([^\\n]+)$', 'm').exec(frontmatter);
19
- return match?.[1].trim().replace(/^['"]|['"]$/g, '') ?? null;
20
- }
21
-
22
- function repositoryOf(source) {
23
- const value = String(source ?? '').trim();
24
- const match = /^(?:git@github\.com:|https:\/\/github\.com\/)?([A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+?)(?:\.git)?$/.exec(value);
25
- return match?.[1] ?? null;
26
- }
27
-
28
- function stableVersion(value) {
29
- const match = /^v?(\d+)\.(\d+)\.(\d+)$/.exec(String(value ?? '').trim());
30
- return match ? match.slice(1).map(Number) : null;
31
- }
32
-
33
- function newer(left, right) {
34
- for (let index = 0; index < 3; index += 1) {
35
- if (left[index] !== right[index]) return left[index] > right[index];
36
- }
37
- return false;
38
- }
39
-
40
- function writeCache(path, value) {
41
- try {
42
- mkdirSync(dirname(path), { recursive: true });
43
- writeFileSync(path, JSON.stringify(value));
44
- } catch { /* A read-only cache must not block skill use. */ }
45
- }
46
-
47
- function main(now = Date.now()) {
48
- if (process.env.ONEABOVEIO_NO_UPDATE_CHECK) return;
49
- const skill = readFileSync(join(here, 'SKILL.md'), 'utf8');
50
- const name = frontmatterValue(skill, 'name');
51
- const localVersion = stableVersion(frontmatterValue(skill, 'release-version'));
52
- if (!name || !localVersion) return;
53
-
54
- const lock = readJson(join(process.env.HOME || homedir(), '.agents', '.skill-lock.json'));
55
- const entry = lock.skills?.[name];
56
- const repository = repositoryOf(entry?.sourceUrl || entry?.source);
57
- if (!repository) return;
58
-
59
- const cacheRoot = process.env.XDG_CACHE_HOME || join(process.env.HOME || homedir(), '.cache');
60
- const cachePath = join(cacheRoot, '1aboveio-skills', 'release-check.json');
61
- const all = readJson(cachePath);
62
- const cache = all[repository] && typeof all[repository] === 'object' ? all[repository] : {};
63
-
64
- if (!cache.lastCheck || now - cache.lastCheck >= DAY_MS) {
65
- const result = spawnSync('gh', ['api', 'repos/' + repository + '/releases/latest', '--jq', '.tag_name'], {
66
- encoding: 'utf8',
67
- stdio: ['ignore', 'pipe', 'ignore'],
68
- timeout: 1500,
69
- });
70
- cache.lastCheck = now;
71
- if (result.status === 0 && stableVersion(result.stdout)) cache.latestTag = result.stdout.trim();
72
- else delete cache.latestTag;
73
- all[repository] = cache;
74
- writeCache(cachePath, all);
75
- }
76
-
77
- const latestVersion = stableVersion(cache.latestTag);
78
- if (!latestVersion || !newer(latestVersion, localVersion)) return;
79
- if (cache.notifiedTag === cache.latestTag && cache.notifiedAt && now - cache.notifiedAt < WEEK_MS) return;
80
-
81
- cache.notifiedTag = cache.latestTag;
82
- cache.notifiedAt = now;
83
- all[repository] = cache;
84
- writeCache(cachePath, all);
85
- const command = `npx skills@1.5.23 add '${repository}#${cache.latestTag}' --global --agent universal claude-code --skill ${name} --yes`;
86
- process.stdout.write(
87
- `UPDATE_AVAILABLE: A newer 1AboveIO skills release (${cache.latestTag}) is available; this skill is `
88
- + `v${localVersion.join('.')}. Ask once whether to refresh ${name}. On approval run \`${command}\`. `
89
- + 'The refreshed instructions apply next session. Either way, continue the current task and do not ask again this session.\n',
90
- );
91
- }
92
-
93
- try { main(); } catch { /* Update checks are advisory and always fail silent. */ }