@millstone/synapse-site 0.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.
@@ -0,0 +1,78 @@
1
+ {
2
+ "generatedAt": "2026-02-15T19:10:16.922Z",
3
+ "fileCount": 35,
4
+ "targets": [
5
+ "ai-tooling-reference-hardware",
6
+ "claude-code-claude-agent-sdk-migration",
7
+ "claude-code-github-actions",
8
+ "claude-code-gitlab-ci-cd",
9
+ "claude-code-headless",
10
+ "claude-code-hooks",
11
+ "claude-code-mcp",
12
+ "claude-code-output-styles",
13
+ "claude-code-overview",
14
+ "claude-code-plugins",
15
+ "claude-code-security",
16
+ "claude-code-settings",
17
+ "claude-code-skills",
18
+ "claude-code-slash-commands",
19
+ "claude-code-sub-agents",
20
+ "deepwiki-integration-technical-design",
21
+ "example-change-control-standard",
22
+ "example-change-management-capability",
23
+ "example-change-management-policy",
24
+ "example-change-management-process",
25
+ "example-choose-quartz-4-adr",
26
+ "example-engineering-evaluation-scorecard",
27
+ "example-investment-committee-meeting",
28
+ "example-observability-initiative-prd",
29
+ "example-payments-api-prd",
30
+ "example-payments-api-tdd",
31
+ "example-production-deployment-sop",
32
+ "example-service-outage-runbook",
33
+ "example-tech-dd-scorecard",
34
+ "fork-to-npm-migration-process",
35
+ "npm-package-release-process",
36
+ "payments-api-system",
37
+ "synapse-docs-index",
38
+ "synapse-docs-reference-guidelines",
39
+ "synapse-documentation-framework-prd"
40
+ ],
41
+ "paths": [
42
+ "100_Products/PRDs/examples/example-observability-initiative-prd.md",
43
+ "100_Products/PRDs/examples/example-payments-api-prd.md",
44
+ "100_Products/PRDs/synapse-documentation-framework-prd.md",
45
+ "10_Policies/examples/example-change-management-policy.md",
46
+ "110_Capabilities/examples/example-change-management-capability.md",
47
+ "200_References/claude-code-claude-agent-sdk-migration.md",
48
+ "200_References/claude-code-github-actions.md",
49
+ "200_References/claude-code-gitlab-ci-cd.md",
50
+ "200_References/claude-code-headless.md",
51
+ "200_References/claude-code-hooks.md",
52
+ "200_References/claude-code-mcp.md",
53
+ "200_References/claude-code-output-styles.md",
54
+ "200_References/claude-code-overview.md",
55
+ "200_References/claude-code-plugins.md",
56
+ "200_References/claude-code-security.md",
57
+ "200_References/claude-code-settings.md",
58
+ "200_References/claude-code-skills.md",
59
+ "200_References/claude-code-slash-commands.md",
60
+ "200_References/claude-code-sub-agents.md",
61
+ "200_References/synapse-docs-index.md",
62
+ "200_References/synapse-docs-reference-guidelines.md",
63
+ "20_Standards/ai-tooling-reference-hardware.md",
64
+ "20_Standards/examples/example-change-control-standard.md",
65
+ "30_Processes/examples/example-change-management-process.md",
66
+ "30_Processes/fork-to-npm-migration-process.md",
67
+ "30_Processes/npm-package-release-process.md",
68
+ "40_SOPs/examples/example-production-deployment-sop.md",
69
+ "50_Runbooks/examples/example-service-outage-runbook.md",
70
+ "60_Meetings/examples/example-investment-committee-meeting.md",
71
+ "70_Systems/examples/payments-api-system.md",
72
+ "80_Scorecards/examples/example-engineering-evaluation-scorecard.md",
73
+ "80_Scorecards/examples/example-tech-dd-scorecard.md",
74
+ "90_Architecture/ADRs/examples/example-choose-quartz-4-adr.md",
75
+ "90_Architecture/TDDs/deepwiki-integration-technical-design.md",
76
+ "90_Architecture/TDDs/examples/example-payments-api-tdd.md"
77
+ ]
78
+ }
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env tsx
2
+
3
+ import { execSync } from 'child_process';
4
+ import { existsSync, copyFileSync, lstatSync, unlinkSync, rmSync } from 'fs';
5
+ import { join, resolve } from 'path';
6
+
7
+ /**
8
+ * Lightweight sync script for plugins, config, and content
9
+ * Ensures all assets are up-to-date before each build
10
+ */
11
+
12
+ const SITE_DIR = resolve(import.meta.dirname);
13
+ const PROJECT_ROOT = resolve(SITE_DIR, '../..');
14
+ const PLUGINS_DIR = join(SITE_DIR, 'plugins');
15
+ const QUARTZ_DIR = join(SITE_DIR, 'quartz');
16
+ const QUARTZ_PLUGINS_DIR = join(QUARTZ_DIR, 'plugins');
17
+ const QUARTZ_CONTENT_DIR = join(QUARTZ_DIR, 'content');
18
+ const QUARTZ_PUBLIC_DIR = join(QUARTZ_DIR, 'public');
19
+ const CONTENT_DIR = join(PROJECT_ROOT, 'content');
20
+ const STATIC_EDIT_DIR = join(SITE_DIR, 'static/edit');
21
+ const CONFIG_FILE = 'quartz.config.ts';
22
+
23
+ // Only sync if quartz directory exists
24
+ if (existsSync(QUARTZ_DIR)) {
25
+ let synced = [];
26
+
27
+ // Sync plugins directory
28
+ if (existsSync(PLUGINS_DIR)) {
29
+ try {
30
+ // Use rsync for efficient syncing (only copies changed files)
31
+ execSync(`rsync -a --delete "${PLUGINS_DIR}/" "${QUARTZ_PLUGINS_DIR}/"`, {
32
+ stdio: 'pipe'
33
+ });
34
+ synced.push('plugins');
35
+ } catch (error) {
36
+ // Fallback to cp if rsync isn't available
37
+ try {
38
+ execSync(`rm -rf "${QUARTZ_PLUGINS_DIR}" && cp -r "${PLUGINS_DIR}" "${QUARTZ_PLUGINS_DIR}"`, {
39
+ stdio: 'pipe'
40
+ });
41
+ synced.push('plugins');
42
+ } catch (cpError) {
43
+ console.error('Warning: Could not sync plugins directory');
44
+ }
45
+ }
46
+ }
47
+
48
+ // Sync config file
49
+ const sourceConfig = join(SITE_DIR, CONFIG_FILE);
50
+ const destConfig = join(QUARTZ_DIR, CONFIG_FILE);
51
+
52
+ if (existsSync(sourceConfig)) {
53
+ try {
54
+ copyFileSync(sourceConfig, destConfig);
55
+ synced.push('config');
56
+ } catch (error) {
57
+ console.error('Warning: Could not sync config file');
58
+ }
59
+ }
60
+
61
+ // Sync content directory (remove symlink if exists, then rsync)
62
+ if (existsSync(CONTENT_DIR)) {
63
+ try {
64
+ // Remove symlink if it exists
65
+ if (existsSync(QUARTZ_CONTENT_DIR)) {
66
+ const stats = lstatSync(QUARTZ_CONTENT_DIR);
67
+ if (stats.isSymbolicLink()) {
68
+ unlinkSync(QUARTZ_CONTENT_DIR);
69
+ }
70
+ }
71
+
72
+ // Use rsync for efficient syncing
73
+ execSync(`rsync -a --delete "${CONTENT_DIR}/" "${QUARTZ_CONTENT_DIR}/"`, {
74
+ stdio: 'pipe'
75
+ });
76
+ synced.push('content');
77
+ } catch (error) {
78
+ // Fallback to cp if rsync isn't available
79
+ try {
80
+ if (existsSync(QUARTZ_CONTENT_DIR)) {
81
+ rmSync(QUARTZ_CONTENT_DIR, { recursive: true, force: true });
82
+ }
83
+ execSync(`cp -r "${CONTENT_DIR}" "${QUARTZ_CONTENT_DIR}"`, {
84
+ stdio: 'pipe'
85
+ });
86
+ synced.push('content');
87
+ } catch (cpError) {
88
+ console.error('Warning: Could not sync content directory');
89
+ }
90
+ }
91
+ }
92
+
93
+ // Sync edit directory to public (for Decap CMS)
94
+ if (existsSync(STATIC_EDIT_DIR)) {
95
+ const editOutputDir = join(QUARTZ_PUBLIC_DIR, 'edit');
96
+ try {
97
+ // Ensure public directory exists
98
+ if (!existsSync(QUARTZ_PUBLIC_DIR)) {
99
+ execSync(`mkdir -p "${QUARTZ_PUBLIC_DIR}"`, { stdio: 'pipe' });
100
+ }
101
+
102
+ // Use rsync for efficient syncing
103
+ execSync(`rsync -a --delete "${STATIC_EDIT_DIR}/" "${editOutputDir}/"`, {
104
+ stdio: 'pipe'
105
+ });
106
+ synced.push('edit');
107
+ } catch (error) {
108
+ // Fallback to cp if rsync isn't available
109
+ try {
110
+ if (existsSync(editOutputDir)) {
111
+ rmSync(editOutputDir, { recursive: true, force: true });
112
+ }
113
+ execSync(`cp -r "${STATIC_EDIT_DIR}" "${editOutputDir}"`, {
114
+ stdio: 'pipe'
115
+ });
116
+ synced.push('edit');
117
+ } catch (cpError) {
118
+ console.error('Warning: Could not sync edit directory');
119
+ }
120
+ }
121
+ }
122
+
123
+ if (synced.length > 0) {
124
+ console.log(`✓ Synced: ${synced.join(', ')}`);
125
+ }
126
+ }