@lebtiga/sonic-agent 1.0.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.
Files changed (62) hide show
  1. package/LICENSE.txt +223 -0
  2. package/README.md +61 -0
  3. package/bin/sonic.js +304 -0
  4. package/lib/index.js +20 -0
  5. package/lib/installer.js +156 -0
  6. package/lib/license.js +48 -0
  7. package/package.json +46 -0
  8. package/plugin/.claude-plugin/plugin.json +13 -0
  9. package/plugin/README.md +100 -0
  10. package/plugin/agents/sonic.md +80 -0
  11. package/plugin/commands/sonic-build.md +145 -0
  12. package/plugin/commands/sonic-help.md +71 -0
  13. package/plugin/skills/accessibility-qa/SKILL.md +160 -0
  14. package/plugin/skills/accessibility-qa/templates/accessibility-qa-report-template.md +123 -0
  15. package/plugin/skills/accessibility-qa/templates/wcag-compliance-statement.md +70 -0
  16. package/plugin/skills/aka-wireframe-wp/SKILL.md +149 -0
  17. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/README.md +190 -0
  18. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/footer.php +49 -0
  19. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/functions.php +395 -0
  20. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/header.php +58 -0
  21. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/index.php +39 -0
  22. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/page-answer.php +62 -0
  23. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/page-authority-hub.php +122 -0
  24. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/page-knowledge.php +58 -0
  25. package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/style.css +633 -0
  26. package/plugin/skills/aka-wireframe-wp/references/content-generator.md +371 -0
  27. package/plugin/skills/aka-wireframe-wp/references/internal-linker.md +430 -0
  28. package/plugin/skills/aka-wireframe-wp/references/orchestrator.md +269 -0
  29. package/plugin/skills/aka-wireframe-wp/references/prompts-library.md +880 -0
  30. package/plugin/skills/aka-wireframe-wp/references/seo-optimizer.md +433 -0
  31. package/plugin/skills/aka-wireframe-wp/references/strategy-planner.md +317 -0
  32. package/plugin/skills/aka-wireframe-wp/references/wordpress-deployer.md +545 -0
  33. package/plugin/skills/authority-site-builder/SKILL.md +138 -0
  34. package/plugin/skills/brand-philosophy/SKILL.md +77 -0
  35. package/plugin/skills/freepik-spaces/SKILL.md +122 -0
  36. package/plugin/skills/freepik-spaces/docs/automation-guide.md +233 -0
  37. package/plugin/skills/freepik-spaces/docs/research-notes.md +264 -0
  38. package/plugin/skills/freepik-spaces/plans/naseberry-demo-plan.md +320 -0
  39. package/plugin/skills/freepik-spaces/templates/naseberry-demo.json +302 -0
  40. package/plugin/skills/freepik-spaces/templates/saas-demo.json +212 -0
  41. package/plugin/skills/frontend-design/LICENSE.txt +177 -0
  42. package/plugin/skills/frontend-design/SKILL.md +77 -0
  43. package/plugin/skills/programmatic-seo/SKILL.md +236 -0
  44. package/plugin/skills/programmatic-seo/references/playbooks.md +293 -0
  45. package/plugin/skills/seo-qa/SKILL.md +132 -0
  46. package/plugin/skills/seo-qa/templates/schema-localbusiness.json +49 -0
  47. package/plugin/skills/seo-qa/templates/schema-service.json +36 -0
  48. package/plugin/skills/seo-qa/templates/seo-qa-report-template.md +90 -0
  49. package/plugin/skills/visual-identity/SKILL.md +109 -0
  50. package/plugin/skills/visual-identity/templates/style-guide-template.md +108 -0
  51. package/plugin/skills/website-image-gen/SKILL.md +82 -0
  52. package/plugin/skills/website-image-gen/templates/blog-featured.md +56 -0
  53. package/plugin/skills/website-image-gen/templates/hero-service-photo.md +56 -0
  54. package/plugin/skills/wordpress-pro/SKILL.md +105 -0
  55. package/plugin/skills/wordpress-pro/references/gutenberg-blocks.md +870 -0
  56. package/plugin/skills/wordpress-pro/references/hooks-filters.md +845 -0
  57. package/plugin/skills/wordpress-pro/references/performance-security.md +1012 -0
  58. package/plugin/skills/wordpress-pro/references/plugin-architecture.md +1041 -0
  59. package/plugin/skills/wordpress-pro/references/theme-development.md +858 -0
  60. package/plugin/sops/SOP-Sonic 777/authority-site-sop.html +1100 -0
  61. package/plugin/sops/SOP-WORDPRESS-330-PAGE-SITES.md +926 -0
  62. package/scripts/postinstall.js +109 -0
@@ -0,0 +1,633 @@
1
+ /*
2
+ Theme Name: AKA Framework Theme
3
+ Theme URI: https://github.com/lebtiga/aka-wireframe-wp-system
4
+ Description: Simple, clean WordPress theme optimized for the AKA (Authority-Knowledge-Answer) framework. Includes custom templates for Authority Hubs, Knowledge Pages, and Answer Pages with proper SEO structure and mobile-responsive design.
5
+ Version: 1.0.0
6
+ Author: AKA Wireframe WordPress
7
+ Author URI: https://github.com/lebtiga/aka-wireframe-wp-system
8
+ License: MIT
9
+ License URI: https://opensource.org/licenses/MIT
10
+ Text Domain: aka-framework
11
+ Tags: seo, authority, knowledge, clean, responsive, minimal
12
+ */
13
+
14
+ /* ========================================
15
+ CSS Variables - Easy Customization
16
+ ======================================== */
17
+ :root {
18
+ /* Brand Colors - Customize these */
19
+ --primary-color: #2563eb;
20
+ --secondary-color: #1e40af;
21
+ --accent-color: #f59e0b;
22
+ --text-color: #1f2937;
23
+ --text-light: #6b7280;
24
+ --background: #ffffff;
25
+ --background-light: #f9fafb;
26
+ --border-color: #e5e7eb;
27
+
28
+ /* Typography */
29
+ --font-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
30
+ --font-heading: Georgia, 'Times New Roman', serif;
31
+
32
+ /* Spacing */
33
+ --spacing-xs: 0.5rem;
34
+ --spacing-sm: 1rem;
35
+ --spacing-md: 1.5rem;
36
+ --spacing-lg: 2rem;
37
+ --spacing-xl: 3rem;
38
+
39
+ /* Layout */
40
+ --container-width: 1200px;
41
+ --content-width: 800px;
42
+ --sidebar-width: 300px;
43
+ }
44
+
45
+ /* ========================================
46
+ Reset & Base Styles
47
+ ======================================== */
48
+ * {
49
+ margin: 0;
50
+ padding: 0;
51
+ box-sizing: border-box;
52
+ }
53
+
54
+ html {
55
+ font-size: 16px;
56
+ scroll-behavior: smooth;
57
+ }
58
+
59
+ body {
60
+ font-family: var(--font-primary);
61
+ font-size: 1rem;
62
+ line-height: 1.6;
63
+ color: var(--text-color);
64
+ background: var(--background);
65
+ }
66
+
67
+ /* ========================================
68
+ Typography
69
+ ======================================== */
70
+ h1, h2, h3, h4, h5, h6 {
71
+ font-family: var(--font-heading);
72
+ font-weight: 700;
73
+ line-height: 1.3;
74
+ margin-bottom: var(--spacing-md);
75
+ color: var(--text-color);
76
+ }
77
+
78
+ h1 { font-size: 2.5rem; }
79
+ h2 { font-size: 2rem; }
80
+ h3 { font-size: 1.5rem; }
81
+ h4 { font-size: 1.25rem; }
82
+ h5 { font-size: 1.125rem; }
83
+ h6 { font-size: 1rem; }
84
+
85
+ p {
86
+ margin-bottom: var(--spacing-sm);
87
+ }
88
+
89
+ a {
90
+ color: var(--primary-color);
91
+ text-decoration: none;
92
+ transition: color 0.2s ease;
93
+ }
94
+
95
+ a:hover {
96
+ color: var(--secondary-color);
97
+ text-decoration: underline;
98
+ }
99
+
100
+ /* ========================================
101
+ Layout Structure
102
+ ======================================== */
103
+ .site-container {
104
+ display: flex;
105
+ flex-direction: column;
106
+ min-height: 100vh;
107
+ }
108
+
109
+ .site-content {
110
+ flex: 1;
111
+ padding: var(--spacing-lg) var(--spacing-md);
112
+ }
113
+
114
+ .container {
115
+ max-width: var(--container-width);
116
+ margin: 0 auto;
117
+ padding: 0 var(--spacing-md);
118
+ }
119
+
120
+ .content-area {
121
+ max-width: var(--content-width);
122
+ margin: 0 auto;
123
+ }
124
+
125
+ /* ========================================
126
+ Header
127
+ ======================================== */
128
+ .site-header {
129
+ background: var(--background);
130
+ border-bottom: 1px solid var(--border-color);
131
+ padding: var(--spacing-md) 0;
132
+ position: sticky;
133
+ top: 0;
134
+ z-index: 100;
135
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
136
+ }
137
+
138
+ .site-branding {
139
+ display: flex;
140
+ align-items: center;
141
+ gap: var(--spacing-md);
142
+ }
143
+
144
+ .site-title {
145
+ font-size: 1.75rem;
146
+ margin: 0;
147
+ }
148
+
149
+ .site-title a {
150
+ color: var(--text-color);
151
+ text-decoration: none;
152
+ }
153
+
154
+ .site-description {
155
+ color: var(--text-light);
156
+ font-size: 0.875rem;
157
+ margin: 0;
158
+ }
159
+
160
+ /* Navigation */
161
+ .main-navigation {
162
+ margin-top: var(--spacing-sm);
163
+ }
164
+
165
+ .main-navigation ul {
166
+ list-style: none;
167
+ display: flex;
168
+ flex-wrap: wrap;
169
+ gap: var(--spacing-md);
170
+ }
171
+
172
+ .main-navigation a {
173
+ color: var(--text-color);
174
+ font-weight: 500;
175
+ padding: var(--spacing-xs) var(--spacing-sm);
176
+ border-radius: 4px;
177
+ transition: background 0.2s ease;
178
+ }
179
+
180
+ .main-navigation a:hover {
181
+ background: var(--background-light);
182
+ text-decoration: none;
183
+ }
184
+
185
+ /* ========================================
186
+ Authority Hub Styling
187
+ ======================================== */
188
+ .authority-hub {
189
+ padding: var(--spacing-xl) 0;
190
+ }
191
+
192
+ .hub-header {
193
+ text-align: center;
194
+ padding: var(--spacing-xl) 0;
195
+ background: linear-gradient(135deg, var(--background-light) 0%, var(--background) 100%);
196
+ border-radius: 8px;
197
+ margin-bottom: var(--spacing-xl);
198
+ }
199
+
200
+ .hub-title {
201
+ font-size: 3rem;
202
+ margin-bottom: var(--spacing-sm);
203
+ color: var(--primary-color);
204
+ }
205
+
206
+ .trust-bar {
207
+ display: flex;
208
+ justify-content: center;
209
+ gap: var(--spacing-lg);
210
+ flex-wrap: wrap;
211
+ margin-top: var(--spacing-md);
212
+ font-size: 0.875rem;
213
+ color: var(--text-light);
214
+ }
215
+
216
+ .trust-item {
217
+ display: flex;
218
+ align-items: center;
219
+ gap: var(--spacing-xs);
220
+ }
221
+
222
+ .emergency-banner {
223
+ background: var(--accent-color);
224
+ color: white;
225
+ padding: var(--spacing-md);
226
+ border-radius: 8px;
227
+ text-align: center;
228
+ margin-bottom: var(--spacing-xl);
229
+ font-weight: 600;
230
+ }
231
+
232
+ .emergency-banner a {
233
+ color: white;
234
+ text-decoration: underline;
235
+ }
236
+
237
+ .quick-nav {
238
+ background: var(--background-light);
239
+ padding: var(--spacing-md);
240
+ border-radius: 8px;
241
+ margin-bottom: var(--spacing-xl);
242
+ }
243
+
244
+ .quick-nav h2 {
245
+ font-size: 1.25rem;
246
+ margin-bottom: var(--spacing-sm);
247
+ }
248
+
249
+ .quick-nav ul {
250
+ list-style: none;
251
+ display: grid;
252
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
253
+ gap: var(--spacing-sm);
254
+ }
255
+
256
+ .quick-nav a {
257
+ display: block;
258
+ padding: var(--spacing-xs) var(--spacing-sm);
259
+ background: white;
260
+ border-radius: 4px;
261
+ transition: all 0.2s ease;
262
+ }
263
+
264
+ .quick-nav a:hover {
265
+ background: var(--primary-color);
266
+ color: white;
267
+ text-decoration: none;
268
+ }
269
+
270
+ /* ========================================
271
+ Knowledge Page Styling
272
+ ======================================== */
273
+ .knowledge-page {
274
+ padding: var(--spacing-lg) 0;
275
+ }
276
+
277
+ .breadcrumbs {
278
+ font-size: 0.875rem;
279
+ color: var(--text-light);
280
+ margin-bottom: var(--spacing-md);
281
+ }
282
+
283
+ .breadcrumbs a {
284
+ color: var(--text-light);
285
+ }
286
+
287
+ .breadcrumbs span {
288
+ margin: 0 var(--spacing-xs);
289
+ }
290
+
291
+ .page-header {
292
+ margin-bottom: var(--spacing-xl);
293
+ padding-bottom: var(--spacing-md);
294
+ border-bottom: 2px solid var(--primary-color);
295
+ }
296
+
297
+ .related-topics {
298
+ background: var(--background-light);
299
+ padding: var(--spacing-lg);
300
+ border-radius: 8px;
301
+ margin-top: var(--spacing-xl);
302
+ }
303
+
304
+ .related-topics h2 {
305
+ font-size: 1.5rem;
306
+ margin-bottom: var(--spacing-md);
307
+ }
308
+
309
+ .topic-grid {
310
+ display: grid;
311
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
312
+ gap: var(--spacing-md);
313
+ }
314
+
315
+ .topic-card {
316
+ background: white;
317
+ padding: var(--spacing-md);
318
+ border-radius: 4px;
319
+ border: 1px solid var(--border-color);
320
+ transition: all 0.2s ease;
321
+ }
322
+
323
+ .topic-card:hover {
324
+ box-shadow: 0 4px 8px rgba(0,0,0,0.1);
325
+ transform: translateY(-2px);
326
+ }
327
+
328
+ /* ========================================
329
+ Answer Page Styling (FAQ)
330
+ ======================================== */
331
+ .answer-page {
332
+ padding: var(--spacing-lg) 0;
333
+ }
334
+
335
+ .quick-answer {
336
+ background: var(--background-light);
337
+ padding: var(--spacing-lg);
338
+ border-left: 4px solid var(--primary-color);
339
+ border-radius: 4px;
340
+ margin-bottom: var(--spacing-xl);
341
+ font-size: 1.125rem;
342
+ }
343
+
344
+ .quick-answer h2 {
345
+ font-size: 1.25rem;
346
+ color: var(--primary-color);
347
+ }
348
+
349
+ .answer-content {
350
+ margin-bottom: var(--spacing-xl);
351
+ }
352
+
353
+ .related-questions {
354
+ background: var(--background-light);
355
+ padding: var(--spacing-lg);
356
+ border-radius: 8px;
357
+ }
358
+
359
+ .related-questions h2 {
360
+ font-size: 1.5rem;
361
+ margin-bottom: var(--spacing-md);
362
+ }
363
+
364
+ .related-questions ul {
365
+ list-style: none;
366
+ }
367
+
368
+ .related-questions li {
369
+ margin-bottom: var(--spacing-sm);
370
+ padding-left: var(--spacing-md);
371
+ position: relative;
372
+ }
373
+
374
+ .related-questions li:before {
375
+ content: "❓";
376
+ position: absolute;
377
+ left: 0;
378
+ }
379
+
380
+ /* ========================================
381
+ Content Components
382
+ ======================================== */
383
+ .entry-content {
384
+ font-size: 1.125rem;
385
+ line-height: 1.7;
386
+ }
387
+
388
+ .entry-content h2 {
389
+ margin-top: var(--spacing-xl);
390
+ padding-top: var(--spacing-md);
391
+ }
392
+
393
+ .entry-content h3 {
394
+ margin-top: var(--spacing-lg);
395
+ }
396
+
397
+ .entry-content ul,
398
+ .entry-content ol {
399
+ margin-bottom: var(--spacing-md);
400
+ padding-left: var(--spacing-lg);
401
+ }
402
+
403
+ .entry-content li {
404
+ margin-bottom: var(--spacing-xs);
405
+ }
406
+
407
+ .entry-content img {
408
+ max-width: 100%;
409
+ height: auto;
410
+ border-radius: 8px;
411
+ margin: var(--spacing-lg) 0;
412
+ }
413
+
414
+ .entry-content blockquote {
415
+ border-left: 4px solid var(--primary-color);
416
+ padding-left: var(--spacing-md);
417
+ margin: var(--spacing-lg) 0;
418
+ font-style: italic;
419
+ color: var(--text-light);
420
+ }
421
+
422
+ /* CTA Buttons */
423
+ .cta-button,
424
+ .wp-block-button__link {
425
+ display: inline-block;
426
+ background: var(--primary-color);
427
+ color: white;
428
+ padding: var(--spacing-sm) var(--spacing-lg);
429
+ border-radius: 4px;
430
+ font-weight: 600;
431
+ text-align: center;
432
+ transition: all 0.2s ease;
433
+ border: none;
434
+ cursor: pointer;
435
+ }
436
+
437
+ .cta-button:hover,
438
+ .wp-block-button__link:hover {
439
+ background: var(--secondary-color);
440
+ text-decoration: none;
441
+ transform: translateY(-2px);
442
+ box-shadow: 0 4px 8px rgba(0,0,0,0.2);
443
+ }
444
+
445
+ .cta-box {
446
+ background: var(--primary-color);
447
+ color: white;
448
+ padding: var(--spacing-lg);
449
+ border-radius: 8px;
450
+ text-align: center;
451
+ margin: var(--spacing-xl) 0;
452
+ }
453
+
454
+ .cta-box h3 {
455
+ color: white;
456
+ margin-bottom: var(--spacing-sm);
457
+ }
458
+
459
+ .cta-box .cta-button {
460
+ background: white;
461
+ color: var(--primary-color);
462
+ }
463
+
464
+ .cta-box .cta-button:hover {
465
+ background: var(--background-light);
466
+ }
467
+
468
+ /* ========================================
469
+ Footer
470
+ ======================================== */
471
+ .site-footer {
472
+ background: var(--text-color);
473
+ color: white;
474
+ padding: var(--spacing-xl) 0 var(--spacing-md);
475
+ margin-top: var(--spacing-xl);
476
+ }
477
+
478
+ .footer-content {
479
+ display: grid;
480
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
481
+ gap: var(--spacing-lg);
482
+ margin-bottom: var(--spacing-lg);
483
+ }
484
+
485
+ .footer-widget h3 {
486
+ color: white;
487
+ font-size: 1.25rem;
488
+ margin-bottom: var(--spacing-md);
489
+ }
490
+
491
+ .footer-widget ul {
492
+ list-style: none;
493
+ }
494
+
495
+ .footer-widget li {
496
+ margin-bottom: var(--spacing-xs);
497
+ }
498
+
499
+ .footer-widget a {
500
+ color: rgba(255,255,255,0.8);
501
+ }
502
+
503
+ .footer-widget a:hover {
504
+ color: white;
505
+ }
506
+
507
+ .site-info {
508
+ text-align: center;
509
+ padding-top: var(--spacing-md);
510
+ border-top: 1px solid rgba(255,255,255,0.2);
511
+ color: rgba(255,255,255,0.6);
512
+ font-size: 0.875rem;
513
+ }
514
+
515
+ /* ========================================
516
+ Sidebar
517
+ ======================================== */
518
+ .hub-sidebar {
519
+ background: var(--background-light);
520
+ padding: var(--spacing-md);
521
+ border-radius: 8px;
522
+ position: sticky;
523
+ top: 100px;
524
+ }
525
+
526
+ .hub-sidebar h3 {
527
+ font-size: 1.25rem;
528
+ margin-bottom: var(--spacing-md);
529
+ }
530
+
531
+ .hub-sidebar ul {
532
+ list-style: none;
533
+ }
534
+
535
+ .hub-sidebar li {
536
+ margin-bottom: var(--spacing-xs);
537
+ }
538
+
539
+ .hub-sidebar a {
540
+ display: block;
541
+ padding: var(--spacing-xs) var(--spacing-sm);
542
+ border-radius: 4px;
543
+ transition: all 0.2s ease;
544
+ }
545
+
546
+ .hub-sidebar a:hover {
547
+ background: white;
548
+ text-decoration: none;
549
+ }
550
+
551
+ /* ========================================
552
+ Responsive Design
553
+ ======================================== */
554
+ @media (max-width: 768px) {
555
+ :root {
556
+ --spacing-xl: 2rem;
557
+ }
558
+
559
+ h1 { font-size: 2rem; }
560
+ h2 { font-size: 1.5rem; }
561
+
562
+ .hub-title {
563
+ font-size: 2rem;
564
+ }
565
+
566
+ .trust-bar {
567
+ flex-direction: column;
568
+ align-items: center;
569
+ gap: var(--spacing-sm);
570
+ }
571
+
572
+ .main-navigation ul {
573
+ flex-direction: column;
574
+ gap: var(--spacing-xs);
575
+ }
576
+
577
+ .footer-content {
578
+ grid-template-columns: 1fr;
579
+ }
580
+
581
+ .entry-content {
582
+ font-size: 1rem;
583
+ }
584
+ }
585
+
586
+ /* ========================================
587
+ Utility Classes
588
+ ======================================== */
589
+ .text-center { text-align: center; }
590
+ .text-left { text-align: left; }
591
+ .text-right { text-align: right; }
592
+
593
+ .mt-sm { margin-top: var(--spacing-sm); }
594
+ .mt-md { margin-top: var(--spacing-md); }
595
+ .mt-lg { margin-top: var(--spacing-lg); }
596
+
597
+ .mb-sm { margin-bottom: var(--spacing-sm); }
598
+ .mb-md { margin-bottom: var(--spacing-md); }
599
+ .mb-lg { margin-bottom: var(--spacing-lg); }
600
+
601
+ .hidden { display: none; }
602
+
603
+ /* ========================================
604
+ WordPress Core Compatibility
605
+ ======================================== */
606
+ .alignleft {
607
+ float: left;
608
+ margin-right: var(--spacing-md);
609
+ margin-bottom: var(--spacing-md);
610
+ }
611
+
612
+ .alignright {
613
+ float: right;
614
+ margin-left: var(--spacing-md);
615
+ margin-bottom: var(--spacing-md);
616
+ }
617
+
618
+ .aligncenter {
619
+ display: block;
620
+ margin-left: auto;
621
+ margin-right: auto;
622
+ }
623
+
624
+ .wp-caption {
625
+ max-width: 100%;
626
+ }
627
+
628
+ .wp-caption-text {
629
+ font-size: 0.875rem;
630
+ color: var(--text-light);
631
+ text-align: center;
632
+ margin-top: var(--spacing-xs);
633
+ }