novahiz 0.2.5 → 0.3.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 (54) hide show
  1. package/NOTICE.md +18 -6
  2. package/README.md +12 -7
  3. package/adapters/README.md +1 -1
  4. package/adapters/opencode/agent/novahiz.md +2 -2
  5. package/adapters/opencode/instructions.md +2 -1
  6. package/adapters/opencode/novahiz.ts +336 -40
  7. package/catalog/categories.json +282 -9
  8. package/catalog/overrides.json +727 -0
  9. package/catalog/providers.json +63 -10
  10. package/catalog/rules.json +42 -9
  11. package/docs/ARCHITECTURE.md +2 -2
  12. package/docs/CATALOG.md +4 -4
  13. package/docs/CLASSIFICATION.md +3 -1
  14. package/docs/CONFIGURATION.md +5 -5
  15. package/docs/CONVERGENCE-2026-09-25.md +5 -0
  16. package/docs/GATE.md +26 -15
  17. package/docs/HARNESSES.md +10 -6
  18. package/docs/INSTALL.md +1 -0
  19. package/docs/PROVIDERS.md +21 -6
  20. package/docs/ROADMAPS.md +29 -0
  21. package/docs/RULES.md +7 -4
  22. package/install/bootstrap.mjs +29 -24
  23. package/install/install.mjs +56 -19
  24. package/install/lib.mjs +20 -4
  25. package/mcp/novahiz-tools/README.md +5 -0
  26. package/mcp/novahiz-tools/index.mjs +78 -7
  27. package/novahiz.config.example.json +4 -3
  28. package/package.json +3 -2
  29. package/skills/gate/SKILL.md +16 -1
  30. package/skills/novahiz-analyse/SKILL.md +2 -2
  31. package/skills/novahiz-audit/SKILL.md +1 -1
  32. package/skills/novahiz-code-review/SKILL.md +1 -1
  33. package/skills/novahiz-converge/SKILL.md +1 -1
  34. package/skills/novahiz-gate/SKILL.md +2 -1
  35. package/skills/novahiz-implement/SKILL.md +2 -2
  36. package/skills/novahiz-plan/SKILL.md +2 -2
  37. package/skills/novahiz-planner/SKILL.md +5 -3
  38. package/skills/novahiz-task/SKILL.md +1 -1
  39. package/skills/prompt-rewriter/SKILL.md +18 -13
  40. package/src/cli.ts +24 -4
  41. package/src/commands/context.ts +43 -4
  42. package/src/commands/doctor.ts +26 -8
  43. package/src/commands/gate.ts +66 -85
  44. package/src/commands/graft.ts +14 -9
  45. package/src/commands/inspect.ts +28 -2
  46. package/src/commands/task.ts +30 -1
  47. package/src/exec.ts +38 -10
  48. package/src/gate-repair.ts +87 -0
  49. package/src/gate.ts +156 -14
  50. package/src/graft.ts +56 -23
  51. package/src/ledger.ts +12 -2
  52. package/src/memory.ts +14 -1
  53. package/src/prompt-rewriter.ts +357 -24
  54. package/src/spec.ts +19 -6
@@ -351,6 +351,733 @@
351
351
  "planning",
352
352
  "code"
353
353
  ]
354
+ },
355
+ "flutter-apply-architecture-best-practices": {
356
+ "power": 5,
357
+ "stars": null,
358
+ "tags": [
359
+ "flutter",
360
+ "architecture",
361
+ "quality"
362
+ ],
363
+ "categories": [
364
+ "flutter",
365
+ "code"
366
+ ]
367
+ },
368
+ "dart-run-static-analysis": {
369
+ "power": 5,
370
+ "stars": null,
371
+ "tags": [
372
+ "dart",
373
+ "quality",
374
+ "analyze"
375
+ ],
376
+ "categories": [
377
+ "flutter",
378
+ "code",
379
+ "audit"
380
+ ]
381
+ },
382
+ "dart-add-unit-test": {
383
+ "power": 5,
384
+ "stars": null,
385
+ "tags": [
386
+ "dart",
387
+ "test",
388
+ "quality"
389
+ ],
390
+ "categories": [
391
+ "flutter",
392
+ "test"
393
+ ]
394
+ },
395
+ "flutter-build-responsive-layout": {
396
+ "power": 4,
397
+ "stars": null,
398
+ "tags": [
399
+ "flutter",
400
+ "layout",
401
+ "quality"
402
+ ],
403
+ "categories": [
404
+ "flutter",
405
+ "design-ui"
406
+ ]
407
+ },
408
+ "flutter-fix-layout-issues": {
409
+ "power": 4,
410
+ "stars": null,
411
+ "tags": [
412
+ "flutter",
413
+ "layout",
414
+ "debug"
415
+ ],
416
+ "categories": [
417
+ "flutter",
418
+ "debug"
419
+ ]
420
+ },
421
+ "flutter-add-widget-test": {
422
+ "power": 4,
423
+ "stars": null,
424
+ "tags": [
425
+ "flutter",
426
+ "test"
427
+ ],
428
+ "categories": [
429
+ "flutter",
430
+ "test"
431
+ ]
432
+ },
433
+ "flutter-setup-declarative-routing": {
434
+ "power": 3,
435
+ "stars": null,
436
+ "tags": [
437
+ "flutter",
438
+ "routing"
439
+ ],
440
+ "categories": [
441
+ "flutter"
442
+ ]
443
+ },
444
+ "flutter-implement-json-serialization": {
445
+ "power": 3,
446
+ "stars": null,
447
+ "tags": [
448
+ "flutter",
449
+ "json"
450
+ ],
451
+ "categories": [
452
+ "flutter"
453
+ ]
454
+ },
455
+ "flutter-setup-localization": {
456
+ "power": 3,
457
+ "stars": null,
458
+ "tags": [
459
+ "flutter",
460
+ "i18n"
461
+ ],
462
+ "categories": [
463
+ "flutter"
464
+ ]
465
+ },
466
+ "browser-session": {
467
+ "power": 4,
468
+ "stars": null,
469
+ "tags": [
470
+ "browser",
471
+ "playwright"
472
+ ],
473
+ "categories": [
474
+ "browser"
475
+ ]
476
+ },
477
+ "dart-build-cli-app": {
478
+ "power": 4,
479
+ "stars": null,
480
+ "tags": [
481
+ "dart",
482
+ "cli"
483
+ ],
484
+ "categories": [
485
+ "flutter",
486
+ "code"
487
+ ]
488
+ },
489
+ "dart-collect-coverage": {
490
+ "power": 4,
491
+ "stars": null,
492
+ "tags": [
493
+ "dart",
494
+ "test",
495
+ "coverage"
496
+ ],
497
+ "categories": [
498
+ "flutter",
499
+ "test"
500
+ ]
501
+ },
502
+ "dart-fix-runtime-errors": {
503
+ "power": 4,
504
+ "stars": null,
505
+ "tags": [
506
+ "dart",
507
+ "debug"
508
+ ],
509
+ "categories": [
510
+ "flutter",
511
+ "debug"
512
+ ]
513
+ },
514
+ "dart-generate-test-mocks": {
515
+ "power": 4,
516
+ "stars": null,
517
+ "tags": [
518
+ "dart",
519
+ "test",
520
+ "mocks"
521
+ ],
522
+ "categories": [
523
+ "flutter",
524
+ "test"
525
+ ]
526
+ },
527
+ "dart-migrate-to-checks-package": {
528
+ "power": 4,
529
+ "stars": null,
530
+ "tags": [
531
+ "dart",
532
+ "test",
533
+ "migration"
534
+ ],
535
+ "categories": [
536
+ "flutter",
537
+ "code"
538
+ ]
539
+ },
540
+ "dart-resolve-package-conflicts": {
541
+ "power": 4,
542
+ "stars": null,
543
+ "tags": [
544
+ "dart",
545
+ "packages"
546
+ ],
547
+ "categories": [
548
+ "flutter",
549
+ "code"
550
+ ]
551
+ },
552
+ "dart-setup-ffi-assets": {
553
+ "power": 4,
554
+ "stars": null,
555
+ "tags": [
556
+ "dart",
557
+ "ffi",
558
+ "native"
559
+ ],
560
+ "categories": [
561
+ "flutter",
562
+ "code"
563
+ ]
564
+ },
565
+ "dart-use-doc-examples": {
566
+ "power": 4,
567
+ "stars": null,
568
+ "tags": [
569
+ "dart",
570
+ "docs"
571
+ ],
572
+ "categories": [
573
+ "flutter",
574
+ "docs-writing"
575
+ ]
576
+ },
577
+ "dart-use-ffigen": {
578
+ "power": 4,
579
+ "stars": null,
580
+ "tags": [
581
+ "dart",
582
+ "ffi"
583
+ ],
584
+ "categories": [
585
+ "flutter",
586
+ "code"
587
+ ]
588
+ },
589
+ "dart-use-path-package": {
590
+ "power": 4,
591
+ "stars": null,
592
+ "tags": [
593
+ "dart",
594
+ "path"
595
+ ],
596
+ "categories": [
597
+ "flutter",
598
+ "code"
599
+ ]
600
+ },
601
+ "dart-use-pattern-matching": {
602
+ "power": 4,
603
+ "stars": null,
604
+ "tags": [
605
+ "dart",
606
+ "patterns"
607
+ ],
608
+ "categories": [
609
+ "flutter",
610
+ "code"
611
+ ]
612
+ },
613
+ "dart-use-primary-constructors": {
614
+ "power": 4,
615
+ "stars": null,
616
+ "tags": [
617
+ "dart",
618
+ "syntax"
619
+ ],
620
+ "categories": [
621
+ "flutter",
622
+ "code"
623
+ ]
624
+ },
625
+ "dart-write-documentation": {
626
+ "power": 4,
627
+ "stars": null,
628
+ "tags": [
629
+ "dart",
630
+ "docs"
631
+ ],
632
+ "categories": [
633
+ "flutter",
634
+ "docs-writing"
635
+ ]
636
+ },
637
+ "eas-app-stores": {
638
+ "power": 4,
639
+ "stars": null,
640
+ "tags": [
641
+ "eas",
642
+ "expo"
643
+ ],
644
+ "categories": [
645
+ "expo"
646
+ ]
647
+ },
648
+ "eas-hosting": {
649
+ "power": 4,
650
+ "stars": null,
651
+ "tags": [
652
+ "eas",
653
+ "expo"
654
+ ],
655
+ "categories": [
656
+ "expo"
657
+ ]
658
+ },
659
+ "eas-observe": {
660
+ "power": 4,
661
+ "stars": null,
662
+ "tags": [
663
+ "eas",
664
+ "expo"
665
+ ],
666
+ "categories": [
667
+ "expo"
668
+ ]
669
+ },
670
+ "eas-simulator": {
671
+ "power": 4,
672
+ "stars": null,
673
+ "tags": [
674
+ "eas",
675
+ "expo"
676
+ ],
677
+ "categories": [
678
+ "expo"
679
+ ]
680
+ },
681
+ "eas-update": {
682
+ "power": 4,
683
+ "stars": null,
684
+ "tags": [
685
+ "eas",
686
+ "expo"
687
+ ],
688
+ "categories": [
689
+ "expo"
690
+ ]
691
+ },
692
+ "eas-update-insights": {
693
+ "power": 4,
694
+ "stars": null,
695
+ "tags": [
696
+ "eas",
697
+ "expo"
698
+ ],
699
+ "categories": [
700
+ "expo"
701
+ ]
702
+ },
703
+ "eas-workflows": {
704
+ "power": 4,
705
+ "stars": null,
706
+ "tags": [
707
+ "eas",
708
+ "expo"
709
+ ],
710
+ "categories": [
711
+ "expo"
712
+ ]
713
+ },
714
+ "expo-animation": {
715
+ "power": 4,
716
+ "stars": null,
717
+ "tags": [
718
+ "expo"
719
+ ],
720
+ "categories": [
721
+ "expo"
722
+ ]
723
+ },
724
+ "expo-app-clip": {
725
+ "power": 4,
726
+ "stars": null,
727
+ "tags": [
728
+ "expo"
729
+ ],
730
+ "categories": [
731
+ "expo"
732
+ ]
733
+ },
734
+ "expo-brownfield": {
735
+ "power": 4,
736
+ "stars": null,
737
+ "tags": [
738
+ "expo"
739
+ ],
740
+ "categories": [
741
+ "expo"
742
+ ]
743
+ },
744
+ "expo-data-fetching": {
745
+ "power": 4,
746
+ "stars": null,
747
+ "tags": [
748
+ "expo"
749
+ ],
750
+ "categories": [
751
+ "expo"
752
+ ]
753
+ },
754
+ "expo-design-system": {
755
+ "power": 5,
756
+ "stars": null,
757
+ "tags": [
758
+ "expo",
759
+ "design"
760
+ ],
761
+ "categories": [
762
+ "expo",
763
+ "design-ui"
764
+ ]
765
+ },
766
+ "expo-dev-client": {
767
+ "power": 4,
768
+ "stars": null,
769
+ "tags": [
770
+ "expo"
771
+ ],
772
+ "categories": [
773
+ "expo"
774
+ ]
775
+ },
776
+ "expo-dom": {
777
+ "power": 4,
778
+ "stars": null,
779
+ "tags": [
780
+ "expo"
781
+ ],
782
+ "categories": [
783
+ "expo"
784
+ ]
785
+ },
786
+ "expo-examples": {
787
+ "power": 4,
788
+ "stars": null,
789
+ "tags": [
790
+ "expo"
791
+ ],
792
+ "categories": [
793
+ "expo"
794
+ ]
795
+ },
796
+ "expo-migrate-module": {
797
+ "power": 4,
798
+ "stars": null,
799
+ "tags": [
800
+ "expo"
801
+ ],
802
+ "categories": [
803
+ "expo"
804
+ ]
805
+ },
806
+ "expo-module": {
807
+ "power": 4,
808
+ "stars": null,
809
+ "tags": [
810
+ "expo"
811
+ ],
812
+ "categories": [
813
+ "expo"
814
+ ]
815
+ },
816
+ "expo-native-ui": {
817
+ "power": 5,
818
+ "stars": null,
819
+ "tags": [
820
+ "expo",
821
+ "design"
822
+ ],
823
+ "categories": [
824
+ "expo",
825
+ "design-ui"
826
+ ]
827
+ },
828
+ "expo-overview": {
829
+ "power": 4,
830
+ "stars": null,
831
+ "tags": [
832
+ "expo"
833
+ ],
834
+ "categories": [
835
+ "expo"
836
+ ]
837
+ },
838
+ "expo-project-structure": {
839
+ "power": 4,
840
+ "stars": null,
841
+ "tags": [
842
+ "expo"
843
+ ],
844
+ "categories": [
845
+ "expo"
846
+ ]
847
+ },
848
+ "expo-router": {
849
+ "power": 4,
850
+ "stars": null,
851
+ "tags": [
852
+ "expo"
853
+ ],
854
+ "categories": [
855
+ "expo"
856
+ ]
857
+ },
858
+ "expo-skill-eval": {
859
+ "power": 4,
860
+ "stars": null,
861
+ "tags": [
862
+ "expo",
863
+ "test"
864
+ ],
865
+ "categories": [
866
+ "expo",
867
+ "test"
868
+ ]
869
+ },
870
+ "expo-skill-feedback": {
871
+ "power": 4,
872
+ "stars": null,
873
+ "tags": [
874
+ "expo"
875
+ ],
876
+ "categories": [
877
+ "expo"
878
+ ]
879
+ },
880
+ "expo-ui": {
881
+ "power": 5,
882
+ "stars": null,
883
+ "tags": [
884
+ "expo",
885
+ "design"
886
+ ],
887
+ "categories": [
888
+ "expo",
889
+ "design-ui"
890
+ ]
891
+ },
892
+ "expo-upgrade": {
893
+ "power": 4,
894
+ "stars": null,
895
+ "tags": [
896
+ "expo"
897
+ ],
898
+ "categories": [
899
+ "expo"
900
+ ]
901
+ },
902
+ "expo-web-to-native": {
903
+ "power": 4,
904
+ "stars": null,
905
+ "tags": [
906
+ "expo"
907
+ ],
908
+ "categories": [
909
+ "expo"
910
+ ]
911
+ },
912
+ "flutter-add-integration-test": {
913
+ "power": 4,
914
+ "stars": null,
915
+ "tags": [
916
+ "flutter",
917
+ "test"
918
+ ],
919
+ "categories": [
920
+ "flutter",
921
+ "test"
922
+ ]
923
+ },
924
+ "flutter-add-widget-preview": {
925
+ "power": 4,
926
+ "stars": null,
927
+ "tags": [
928
+ "flutter",
929
+ "preview"
930
+ ],
931
+ "categories": [
932
+ "flutter",
933
+ "test"
934
+ ]
935
+ },
936
+ "flutter-use-http-package": {
937
+ "power": 4,
938
+ "stars": null,
939
+ "tags": [
940
+ "flutter",
941
+ "http"
942
+ ],
943
+ "categories": [
944
+ "flutter",
945
+ "code"
946
+ ]
947
+ },
948
+ "impeccable": {
949
+ "power": 5,
950
+ "stars": null,
951
+ "tags": [
952
+ "design",
953
+ "critique",
954
+ "polish"
955
+ ],
956
+ "categories": [
957
+ "design-ui"
958
+ ]
959
+ },
960
+ "novahiz-assess-decide": {
961
+ "power": 4,
962
+ "stars": null,
963
+ "tags": [
964
+ "Novahiz",
965
+ "assessment"
966
+ ],
967
+ "categories": [
968
+ "assessment"
969
+ ]
970
+ },
971
+ "novahiz-assess-define": {
972
+ "power": 4,
973
+ "stars": null,
974
+ "tags": [
975
+ "Novahiz",
976
+ "assessment"
977
+ ],
978
+ "categories": [
979
+ "assessment"
980
+ ]
981
+ },
982
+ "novahiz-assess-intake": {
983
+ "power": 4,
984
+ "stars": null,
985
+ "tags": [
986
+ "Novahiz",
987
+ "assessment"
988
+ ],
989
+ "categories": [
990
+ "assessment"
991
+ ]
992
+ },
993
+ "novahiz-assess-research": {
994
+ "power": 4,
995
+ "stars": null,
996
+ "tags": [
997
+ "Novahiz",
998
+ "assessment"
999
+ ],
1000
+ "categories": [
1001
+ "assessment"
1002
+ ]
1003
+ },
1004
+ "novahiz-assess-shape": {
1005
+ "power": 4,
1006
+ "stars": null,
1007
+ "tags": [
1008
+ "Novahiz",
1009
+ "assessment"
1010
+ ],
1011
+ "categories": [
1012
+ "assessment"
1013
+ ]
1014
+ },
1015
+ "novahiz-browser": {
1016
+ "power": 4,
1017
+ "stars": null,
1018
+ "tags": [
1019
+ "Novahiz",
1020
+ "browser"
1021
+ ],
1022
+ "categories": [
1023
+ "browser"
1024
+ ]
1025
+ },
1026
+ "novahiz-docs": {
1027
+ "power": 4,
1028
+ "stars": null,
1029
+ "tags": [
1030
+ "Novahiz",
1031
+ "docs"
1032
+ ],
1033
+ "categories": [
1034
+ "docs-writing"
1035
+ ]
1036
+ },
1037
+ "novahiz-init": {
1038
+ "power": 4,
1039
+ "stars": null,
1040
+ "tags": [
1041
+ "Novahiz",
1042
+ "planning",
1043
+ "onboarding"
1044
+ ],
1045
+ "categories": [
1046
+ "planning"
1047
+ ]
1048
+ },
1049
+ "prompt-rewriter": {
1050
+ "power": 4,
1051
+ "stars": null,
1052
+ "tags": [
1053
+ "text",
1054
+ "translate"
1055
+ ],
1056
+ "categories": [
1057
+ "general"
1058
+ ]
1059
+ },
1060
+ "supabase": {
1061
+ "power": 4,
1062
+ "stars": null,
1063
+ "tags": [
1064
+ "database",
1065
+ "supabase"
1066
+ ],
1067
+ "categories": [
1068
+ "database-supabase"
1069
+ ]
1070
+ },
1071
+ "supabase-postgres-best-practices": {
1072
+ "power": 4,
1073
+ "stars": null,
1074
+ "tags": [
1075
+ "database",
1076
+ "postgres"
1077
+ ],
1078
+ "categories": [
1079
+ "database-supabase"
1080
+ ]
354
1081
  }
355
1082
  }
356
1083
  }