diff --git a/.decisions/log/01KZTGGGS1TF32NE5ZREW3A55B.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGGS1TF32NE5ZREW3A55B.yml similarity index 100% rename from .decisions/log/01KZTGGGS1TF32NE5ZREW3A55B.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGGS1TF32NE5ZREW3A55B.yml diff --git a/.decisions/log/01KZTGGGXG6CVNYHVZWD4VSXXN.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGGXG6CVNYHVZWD4VSXXN.yml similarity index 100% rename from .decisions/log/01KZTGGGXG6CVNYHVZWD4VSXXN.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGGXG6CVNYHVZWD4VSXXN.yml diff --git a/.decisions/log/01KZTGGH25SFKCGSFCXJMTM7VC.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGH25SFKCGSFCXJMTM7VC.yml similarity index 100% rename from .decisions/log/01KZTGGH25SFKCGSFCXJMTM7VC.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGH25SFKCGSFCXJMTM7VC.yml diff --git a/.decisions/log/01KZTGGH76Z3C69CJ6CBBXXZCZ.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGH76Z3C69CJ6CBBXXZCZ.yml similarity index 100% rename from .decisions/log/01KZTGGH76Z3C69CJ6CBBXXZCZ.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGH76Z3C69CJ6CBBXXZCZ.yml diff --git a/.decisions/log/01KZTGGHCB2AY2GQ6B1JP50VH0.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGHCB2AY2GQ6B1JP50VH0.yml similarity index 100% rename from .decisions/log/01KZTGGHCB2AY2GQ6B1JP50VH0.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGHCB2AY2GQ6B1JP50VH0.yml diff --git a/.decisions/log/01KZTGGHHKFXC6APZ4GF0B20PE.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGHHKFXC6APZ4GF0B20PE.yml similarity index 100% rename from .decisions/log/01KZTGGHHKFXC6APZ4GF0B20PE.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGHHKFXC6APZ4GF0B20PE.yml diff --git a/.decisions/log/01KZTGGHQ69HQR5N9TH579SWDM.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGHQ69HQR5N9TH579SWDM.yml similarity index 100% rename from .decisions/log/01KZTGGHQ69HQR5N9TH579SWDM.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGHQ69HQR5N9TH579SWDM.yml diff --git a/.decisions/log/01KZTGGHXCR4GMGPR87TJ7WNG9.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGHXCR4GMGPR87TJ7WNG9.yml similarity index 100% rename from .decisions/log/01KZTGGHXCR4GMGPR87TJ7WNG9.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGHXCR4GMGPR87TJ7WNG9.yml diff --git a/.decisions/log/01KZTGGJ34CHP029QZYF66YGXT.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGJ34CHP029QZYF66YGXT.yml similarity index 100% rename from .decisions/log/01KZTGGJ34CHP029QZYF66YGXT.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGJ34CHP029QZYF66YGXT.yml diff --git a/.decisions/log/01KZTGGJ92TNGQSEVYW7ZK4Z11.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGJ92TNGQSEVYW7ZK4Z11.yml similarity index 100% rename from .decisions/log/01KZTGGJ92TNGQSEVYW7ZK4Z11.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGJ92TNGQSEVYW7ZK4Z11.yml diff --git a/.decisions/log/01KZTGGJFED3R42CBXMT61QNEJ.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGJFED3R42CBXMT61QNEJ.yml similarity index 100% rename from .decisions/log/01KZTGGJFED3R42CBXMT61QNEJ.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGJFED3R42CBXMT61QNEJ.yml diff --git a/.decisions/log/01KZTGGJNQRC2V0Q4PYWZ5SFT0.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGJNQRC2V0Q4PYWZ5SFT0.yml similarity index 100% rename from .decisions/log/01KZTGGJNQRC2V0Q4PYWZ5SFT0.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGJNQRC2V0Q4PYWZ5SFT0.yml diff --git a/.decisions/log/01KZTGGJW5558M2Q2S9963F5SG.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGJW5558M2Q2S9963F5SG.yml similarity index 100% rename from .decisions/log/01KZTGGJW5558M2Q2S9963F5SG.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGJW5558M2Q2S9963F5SG.yml diff --git a/.decisions/log/01KZTGGK2R76MG2SJY754BJ925.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGK2R76MG2SJY754BJ925.yml similarity index 100% rename from .decisions/log/01KZTGGK2R76MG2SJY754BJ925.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGK2R76MG2SJY754BJ925.yml diff --git a/.decisions/log/01KZTGGK9FH0FGZR7EE8HN4PS7.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGK9FH0FGZR7EE8HN4PS7.yml similarity index 100% rename from .decisions/log/01KZTGGK9FH0FGZR7EE8HN4PS7.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGK9FH0FGZR7EE8HN4PS7.yml diff --git a/.decisions/log/01KZTGGKGBCDMFK30X1K9FNZYA.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGKGBCDMFK30X1K9FNZYA.yml similarity index 100% rename from .decisions/log/01KZTGGKGBCDMFK30X1K9FNZYA.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGKGBCDMFK30X1K9FNZYA.yml diff --git a/.decisions/log/01KZTGGKQDBWWQTNVC3XY937GD.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGKQDBWWQTNVC3XY937GD.yml similarity index 100% rename from .decisions/log/01KZTGGKQDBWWQTNVC3XY937GD.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGKQDBWWQTNVC3XY937GD.yml diff --git a/.decisions/log/01KZTGGKYNQKDYDBHQX2KW6KDS.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGKYNQKDYDBHQX2KW6KDS.yml similarity index 100% rename from .decisions/log/01KZTGGKYNQKDYDBHQX2KW6KDS.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGKYNQKDYDBHQX2KW6KDS.yml diff --git a/.decisions/log/01KZTGGM6BQ13WM22EBNYBPFEY.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGM6BQ13WM22EBNYBPFEY.yml similarity index 100% rename from .decisions/log/01KZTGGM6BQ13WM22EBNYBPFEY.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGM6BQ13WM22EBNYBPFEY.yml diff --git a/.decisions/log/01KZTGGMEAJTX88HKBWPVYRQV9.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGMEAJTX88HKBWPVYRQV9.yml similarity index 100% rename from .decisions/log/01KZTGGMEAJTX88HKBWPVYRQV9.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGMEAJTX88HKBWPVYRQV9.yml diff --git a/.decisions/log/01KZTGGMPHVMNZ6GGV8YX1N9EW.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGMPHVMNZ6GGV8YX1N9EW.yml similarity index 100% rename from .decisions/log/01KZTGGMPHVMNZ6GGV8YX1N9EW.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGMPHVMNZ6GGV8YX1N9EW.yml diff --git a/.decisions/log/01KZTGGMYT8C43AZ5EXB6BZGY5.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGMYT8C43AZ5EXB6BZGY5.yml similarity index 100% rename from .decisions/log/01KZTGGMYT8C43AZ5EXB6BZGY5.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGMYT8C43AZ5EXB6BZGY5.yml diff --git a/.decisions/log/01KZTGGN7C2W9GMC2GYWY7NCPD.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGN7C2W9GMC2GYWY7NCPD.yml similarity index 100% rename from .decisions/log/01KZTGGN7C2W9GMC2GYWY7NCPD.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGN7C2W9GMC2GYWY7NCPD.yml diff --git a/.decisions/log/01KZTGGNGD5AYC7DPKGMSQ59EH.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGNGD5AYC7DPKGMSQ59EH.yml similarity index 100% rename from .decisions/log/01KZTGGNGD5AYC7DPKGMSQ59EH.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGNGD5AYC7DPKGMSQ59EH.yml diff --git a/.decisions/log/01KZTGGNSHJMZP78SAVPB09YBM.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGNSHJMZP78SAVPB09YBM.yml similarity index 100% rename from .decisions/log/01KZTGGNSHJMZP78SAVPB09YBM.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGNSHJMZP78SAVPB09YBM.yml diff --git a/.decisions/log/01KZTGGP8RB22MZ4ER7P7HX1N5.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGP8RB22MZ4ER7P7HX1N5.yml similarity index 100% rename from .decisions/log/01KZTGGP8RB22MZ4ER7P7HX1N5.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGP8RB22MZ4ER7P7HX1N5.yml diff --git a/.decisions/log/01KZTGGPHWM9SS6J446MGJKZWA.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGPHWM9SS6J446MGJKZWA.yml similarity index 100% rename from .decisions/log/01KZTGGPHWM9SS6J446MGJKZWA.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGPHWM9SS6J446MGJKZWA.yml diff --git a/.decisions/log/01KZTGGPV46ABRWGGQJYXEMF5R.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGPV46ABRWGGQJYXEMF5R.yml similarity index 100% rename from .decisions/log/01KZTGGPV46ABRWGGQJYXEMF5R.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGPV46ABRWGGQJYXEMF5R.yml diff --git a/.decisions/log/01KZTGGQ4HT8J1V3A5RQ8HFBDC.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGQ4HT8J1V3A5RQ8HFBDC.yml similarity index 100% rename from .decisions/log/01KZTGGQ4HT8J1V3A5RQ8HFBDC.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGQ4HT8J1V3A5RQ8HFBDC.yml diff --git a/.decisions/log/01KZTGGQFE31C777RCBP4MVH5C.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGQFE31C777RCBP4MVH5C.yml similarity index 100% rename from .decisions/log/01KZTGGQFE31C777RCBP4MVH5C.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGQFE31C777RCBP4MVH5C.yml diff --git a/.decisions/log/01KZTGGQS9G5FE0YATDHNC768B.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGQS9G5FE0YATDHNC768B.yml similarity index 100% rename from .decisions/log/01KZTGGQS9G5FE0YATDHNC768B.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGQS9G5FE0YATDHNC768B.yml diff --git a/.decisions/log/01KZTGGR3DDYKDZYQ9BY56AMGM.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGR3DDYKDZYQ9BY56AMGM.yml similarity index 100% rename from .decisions/log/01KZTGGR3DDYKDZYQ9BY56AMGM.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGR3DDYKDZYQ9BY56AMGM.yml diff --git a/.decisions/log/01KZTGGRE2KWE90Q17NVBSHH3G.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGRE2KWE90Q17NVBSHH3G.yml similarity index 100% rename from .decisions/log/01KZTGGRE2KWE90Q17NVBSHH3G.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGRE2KWE90Q17NVBSHH3G.yml diff --git a/.decisions/log/01KZTGGRSF2PN0YJ6W6YCXNXE7.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGRSF2PN0YJ6W6YCXNXE7.yml similarity index 100% rename from .decisions/log/01KZTGGRSF2PN0YJ6W6YCXNXE7.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGRSF2PN0YJ6W6YCXNXE7.yml diff --git a/.decisions/log/01KZTGGS4B7BTEWB4C0N0Y3JV0.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGS4B7BTEWB4C0N0Y3JV0.yml similarity index 100% rename from .decisions/log/01KZTGGS4B7BTEWB4C0N0Y3JV0.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGS4B7BTEWB4C0N0Y3JV0.yml diff --git a/.decisions/log/01KZTGGSFEM9JH6TYTENN4KKD3.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGSFEM9JH6TYTENN4KKD3.yml similarity index 100% rename from .decisions/log/01KZTGGSFEM9JH6TYTENN4KKD3.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGSFEM9JH6TYTENN4KKD3.yml diff --git a/.decisions/log/01KZTGGSV7KVG13236BYWW28PV.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGSV7KVG13236BYWW28PV.yml similarity index 100% rename from .decisions/log/01KZTGGSV7KVG13236BYWW28PV.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGSV7KVG13236BYWW28PV.yml diff --git a/.decisions/log/01KZTGGT76A1ASWHEDXRBQ8CSK.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGT76A1ASWHEDXRBQ8CSK.yml similarity index 100% rename from .decisions/log/01KZTGGT76A1ASWHEDXRBQ8CSK.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGT76A1ASWHEDXRBQ8CSK.yml diff --git a/.decisions/log/01KZTGGTKM1NYXYNN2J5QX430D.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGTKM1NYXYNN2J5QX430D.yml similarity index 100% rename from .decisions/log/01KZTGGTKM1NYXYNN2J5QX430D.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGTKM1NYXYNN2J5QX430D.yml diff --git a/.decisions/log/01KZTGGV067R92981RZ569H0GT.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGV067R92981RZ569H0GT.yml similarity index 100% rename from .decisions/log/01KZTGGV067R92981RZ569H0GT.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGV067R92981RZ569H0GT.yml diff --git a/.decisions/log/01KZTGGVHB1Z680QE061XM1E5G.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGVHB1Z680QE061XM1E5G.yml similarity index 100% rename from .decisions/log/01KZTGGVHB1Z680QE061XM1E5G.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGVHB1Z680QE061XM1E5G.yml diff --git a/.decisions/log/01KZTGGVXZSAY2ENMR2XPXWGWF.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGVXZSAY2ENMR2XPXWGWF.yml similarity index 100% rename from .decisions/log/01KZTGGVXZSAY2ENMR2XPXWGWF.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGVXZSAY2ENMR2XPXWGWF.yml diff --git a/.decisions/log/01KZTGGWARNTFQP017AERKJYS0.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGWARNTFQP017AERKJYS0.yml similarity index 100% rename from .decisions/log/01KZTGGWARNTFQP017AERKJYS0.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGWARNTFQP017AERKJYS0.yml diff --git a/.decisions/log/01KZTGGWQGRY25YZ01F8M3GG9P.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGWQGRY25YZ01F8M3GG9P.yml similarity index 100% rename from .decisions/log/01KZTGGWQGRY25YZ01F8M3GG9P.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGWQGRY25YZ01F8M3GG9P.yml diff --git a/.decisions/log/01KZTGGX5BRMTH0XE4FRD8NQBN.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGX5BRMTH0XE4FRD8NQBN.yml similarity index 100% rename from .decisions/log/01KZTGGX5BRMTH0XE4FRD8NQBN.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGX5BRMTH0XE4FRD8NQBN.yml diff --git a/.decisions/log/01KZTGGXJBQ0FRGHGDP84KDM3Z.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGXJBQ0FRGHGDP84KDM3Z.yml similarity index 100% rename from .decisions/log/01KZTGGXJBQ0FRGHGDP84KDM3Z.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGXJBQ0FRGHGDP84KDM3Z.yml diff --git a/.decisions/log/01KZTGGY0PM06CQ7XSDZP66ANX.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGY0PM06CQ7XSDZP66ANX.yml similarity index 100% rename from .decisions/log/01KZTGGY0PM06CQ7XSDZP66ANX.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGY0PM06CQ7XSDZP66ANX.yml diff --git a/.decisions/log/01KZTGGYE3Y450AW44A69ZZDF0.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGYE3Y450AW44A69ZZDF0.yml similarity index 100% rename from .decisions/log/01KZTGGYE3Y450AW44A69ZZDF0.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGYE3Y450AW44A69ZZDF0.yml diff --git a/.decisions/log/01KZTGGYVSQ9M7F4DJ184E8D08.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGYVSQ9M7F4DJ184E8D08.yml similarity index 100% rename from .decisions/log/01KZTGGYVSQ9M7F4DJ184E8D08.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGYVSQ9M7F4DJ184E8D08.yml diff --git a/.decisions/log/01KZTGGZ9PNSGSYFSPVADMEGAB.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGZ9PNSGSYFSPVADMEGAB.yml similarity index 100% rename from .decisions/log/01KZTGGZ9PNSGSYFSPVADMEGAB.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGZ9PNSGSYFSPVADMEGAB.yml diff --git a/.decisions/log/01KZTGGZQQJ5R0F156TJ6HARS6.yml b/.decisions/ns/hafeok.ddd/log/01KZTGGZQQJ5R0F156TJ6HARS6.yml similarity index 100% rename from .decisions/log/01KZTGGZQQJ5R0F156TJ6HARS6.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGGZQQJ5R0F156TJ6HARS6.yml diff --git a/.decisions/log/01KZTGH06WMVQZTB9VWQJBNBPK.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH06WMVQZTB9VWQJBNBPK.yml similarity index 100% rename from .decisions/log/01KZTGH06WMVQZTB9VWQJBNBPK.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH06WMVQZTB9VWQJBNBPK.yml diff --git a/.decisions/log/01KZTGH0TVH9JAXHG0H9K2VWWX.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH0TVH9JAXHG0H9K2VWWX.yml similarity index 100% rename from .decisions/log/01KZTGH0TVH9JAXHG0H9K2VWWX.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH0TVH9JAXHG0H9K2VWWX.yml diff --git a/.decisions/log/01KZTGH19V8KXVHBHTFAQDBN90.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH19V8KXVHBHTFAQDBN90.yml similarity index 100% rename from .decisions/log/01KZTGH19V8KXVHBHTFAQDBN90.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH19V8KXVHBHTFAQDBN90.yml diff --git a/.decisions/log/01KZTGH1RKH6AXJ0MP1MWGQVPW.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH1RKH6AXJ0MP1MWGQVPW.yml similarity index 100% rename from .decisions/log/01KZTGH1RKH6AXJ0MP1MWGQVPW.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH1RKH6AXJ0MP1MWGQVPW.yml diff --git a/.decisions/log/01KZTGH27QWDBP6WHPRNPM3AHV.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH27QWDBP6WHPRNPM3AHV.yml similarity index 100% rename from .decisions/log/01KZTGH27QWDBP6WHPRNPM3AHV.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH27QWDBP6WHPRNPM3AHV.yml diff --git a/.decisions/log/01KZTGH2Q22VA19V95VBDHV9MK.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH2Q22VA19V95VBDHV9MK.yml similarity index 100% rename from .decisions/log/01KZTGH2Q22VA19V95VBDHV9MK.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH2Q22VA19V95VBDHV9MK.yml diff --git a/.decisions/log/01KZTGH375X445T362JRNDTG8Q.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH375X445T362JRNDTG8Q.yml similarity index 100% rename from .decisions/log/01KZTGH375X445T362JRNDTG8Q.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH375X445T362JRNDTG8Q.yml diff --git a/.decisions/log/01KZTGH3PYAVD7TQWV2ZSX0S86.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH3PYAVD7TQWV2ZSX0S86.yml similarity index 100% rename from .decisions/log/01KZTGH3PYAVD7TQWV2ZSX0S86.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH3PYAVD7TQWV2ZSX0S86.yml diff --git a/.decisions/log/01KZTGH46S7P81K5GG6FXSAZDV.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH46S7P81K5GG6FXSAZDV.yml similarity index 100% rename from .decisions/log/01KZTGH46S7P81K5GG6FXSAZDV.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH46S7P81K5GG6FXSAZDV.yml diff --git a/.decisions/log/01KZTGH4QJ902M3A5NM7CSK4ST.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH4QJ902M3A5NM7CSK4ST.yml similarity index 100% rename from .decisions/log/01KZTGH4QJ902M3A5NM7CSK4ST.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH4QJ902M3A5NM7CSK4ST.yml diff --git a/.decisions/log/01KZTGH581BJJ0MMXYK4CAK7YR.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH581BJJ0MMXYK4CAK7YR.yml similarity index 100% rename from .decisions/log/01KZTGH581BJJ0MMXYK4CAK7YR.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH581BJJ0MMXYK4CAK7YR.yml diff --git a/.decisions/log/01KZTGH5RQ1G66BPDM5N5Y2XCX.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH5RQ1G66BPDM5N5Y2XCX.yml similarity index 100% rename from .decisions/log/01KZTGH5RQ1G66BPDM5N5Y2XCX.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH5RQ1G66BPDM5N5Y2XCX.yml diff --git a/.decisions/log/01KZTGH69VQ7NA131CY3GCGMXR.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH69VQ7NA131CY3GCGMXR.yml similarity index 100% rename from .decisions/log/01KZTGH69VQ7NA131CY3GCGMXR.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH69VQ7NA131CY3GCGMXR.yml diff --git a/.decisions/log/01KZTGH6TM60B2T8T2S2ZKSTG6.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH6TM60B2T8T2S2ZKSTG6.yml similarity index 100% rename from .decisions/log/01KZTGH6TM60B2T8T2S2ZKSTG6.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH6TM60B2T8T2S2ZKSTG6.yml diff --git a/.decisions/log/01KZTGH7BTQ2Z6NBPQGDHQRXYN.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH7BTQ2Z6NBPQGDHQRXYN.yml similarity index 100% rename from .decisions/log/01KZTGH7BTQ2Z6NBPQGDHQRXYN.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH7BTQ2Z6NBPQGDHQRXYN.yml diff --git a/.decisions/log/01KZTGH7XBNTWTZ253YWW2AQ5V.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH7XBNTWTZ253YWW2AQ5V.yml similarity index 100% rename from .decisions/log/01KZTGH7XBNTWTZ253YWW2AQ5V.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH7XBNTWTZ253YWW2AQ5V.yml diff --git a/.decisions/log/01KZTGH8FFCXV3M8Q70XCBNV8W.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH8FFCXV3M8Q70XCBNV8W.yml similarity index 100% rename from .decisions/log/01KZTGH8FFCXV3M8Q70XCBNV8W.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH8FFCXV3M8Q70XCBNV8W.yml diff --git a/.decisions/log/01KZTGH919RY8CY8XBJHJR9WZ6.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH919RY8CY8XBJHJR9WZ6.yml similarity index 100% rename from .decisions/log/01KZTGH919RY8CY8XBJHJR9WZ6.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH919RY8CY8XBJHJR9WZ6.yml diff --git a/.decisions/log/01KZTGH9KHKTDGS8AA8FMA9GYA.yml b/.decisions/ns/hafeok.ddd/log/01KZTGH9KHKTDGS8AA8FMA9GYA.yml similarity index 100% rename from .decisions/log/01KZTGH9KHKTDGS8AA8FMA9GYA.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGH9KHKTDGS8AA8FMA9GYA.yml diff --git a/.decisions/log/01KZTGHA61JZQD5QSJKDHKWWEK.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHA61JZQD5QSJKDHKWWEK.yml similarity index 100% rename from .decisions/log/01KZTGHA61JZQD5QSJKDHKWWEK.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHA61JZQD5QSJKDHKWWEK.yml diff --git a/.decisions/log/01KZTGHARQQW8F91DRNWSPNVHR.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHARQQW8F91DRNWSPNVHR.yml similarity index 100% rename from .decisions/log/01KZTGHARQQW8F91DRNWSPNVHR.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHARQQW8F91DRNWSPNVHR.yml diff --git a/.decisions/log/01KZTGHBB9ECEH8TJKTBA98F1X.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHBB9ECEH8TJKTBA98F1X.yml similarity index 100% rename from .decisions/log/01KZTGHBB9ECEH8TJKTBA98F1X.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHBB9ECEH8TJKTBA98F1X.yml diff --git a/.decisions/log/01KZTGHBYPENHW4MFF2SR9GE56.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHBYPENHW4MFF2SR9GE56.yml similarity index 100% rename from .decisions/log/01KZTGHBYPENHW4MFF2SR9GE56.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHBYPENHW4MFF2SR9GE56.yml diff --git a/.decisions/log/01KZTGHCHVFKBJV8N7P8QHYBTT.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHCHVFKBJV8N7P8QHYBTT.yml similarity index 100% rename from .decisions/log/01KZTGHCHVFKBJV8N7P8QHYBTT.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHCHVFKBJV8N7P8QHYBTT.yml diff --git a/.decisions/log/01KZTGHD5CSJK413WZHGYVQ2T3.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHD5CSJK413WZHGYVQ2T3.yml similarity index 100% rename from .decisions/log/01KZTGHD5CSJK413WZHGYVQ2T3.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHD5CSJK413WZHGYVQ2T3.yml diff --git a/.decisions/log/01KZTGHDS9YQ5H4F5FHFB28AWB.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHDS9YQ5H4F5FHFB28AWB.yml similarity index 100% rename from .decisions/log/01KZTGHDS9YQ5H4F5FHFB28AWB.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHDS9YQ5H4F5FHFB28AWB.yml diff --git a/.decisions/log/01KZTGHEE8M1R77RQR5CQ47MQW.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHEE8M1R77RQR5CQ47MQW.yml similarity index 100% rename from .decisions/log/01KZTGHEE8M1R77RQR5CQ47MQW.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHEE8M1R77RQR5CQ47MQW.yml diff --git a/.decisions/log/01KZTGHF4B5HHKMR0QGBRBFD38.yml b/.decisions/ns/hafeok.ddd/log/01KZTGHF4B5HHKMR0QGBRBFD38.yml similarity index 100% rename from .decisions/log/01KZTGHF4B5HHKMR0QGBRBFD38.yml rename to .decisions/ns/hafeok.ddd/log/01KZTGHF4B5HHKMR0QGBRBFD38.yml diff --git a/.decisions/log/01KZX70EMPA47TBR0PFKX4M32Z.yml b/.decisions/ns/hafeok.ddd/log/01KZX70EMPA47TBR0PFKX4M32Z.yml similarity index 100% rename from .decisions/log/01KZX70EMPA47TBR0PFKX4M32Z.yml rename to .decisions/ns/hafeok.ddd/log/01KZX70EMPA47TBR0PFKX4M32Z.yml diff --git a/.decisions/log/01KZX70EQGQCB1B190TS9FZ1A2.yml b/.decisions/ns/hafeok.ddd/log/01KZX70EQGQCB1B190TS9FZ1A2.yml similarity index 100% rename from .decisions/log/01KZX70EQGQCB1B190TS9FZ1A2.yml rename to .decisions/ns/hafeok.ddd/log/01KZX70EQGQCB1B190TS9FZ1A2.yml diff --git a/.decisions/log/01KZX70ET1GMR2012XKEP5EWDW.yml b/.decisions/ns/hafeok.ddd/log/01KZX70ET1GMR2012XKEP5EWDW.yml similarity index 100% rename from .decisions/log/01KZX70ET1GMR2012XKEP5EWDW.yml rename to .decisions/ns/hafeok.ddd/log/01KZX70ET1GMR2012XKEP5EWDW.yml diff --git a/.decisions/log/01KZX70S86QGXVCA5GW5WSY6XA.yml b/.decisions/ns/hafeok.ddd/log/01KZX70S86QGXVCA5GW5WSY6XA.yml similarity index 100% rename from .decisions/log/01KZX70S86QGXVCA5GW5WSY6XA.yml rename to .decisions/ns/hafeok.ddd/log/01KZX70S86QGXVCA5GW5WSY6XA.yml diff --git a/.decisions/log/01KZX7HW7JY5BKE3YPTXXX9BDH.yml b/.decisions/ns/hafeok.ddd/log/01KZX7HW7JY5BKE3YPTXXX9BDH.yml similarity index 100% rename from .decisions/log/01KZX7HW7JY5BKE3YPTXXX9BDH.yml rename to .decisions/ns/hafeok.ddd/log/01KZX7HW7JY5BKE3YPTXXX9BDH.yml diff --git a/.decisions/log/01KZXCED6QA8EKJW5TX88H329G.yml b/.decisions/ns/hafeok.ddd/log/01KZXCED6QA8EKJW5TX88H329G.yml similarity index 100% rename from .decisions/log/01KZXCED6QA8EKJW5TX88H329G.yml rename to .decisions/ns/hafeok.ddd/log/01KZXCED6QA8EKJW5TX88H329G.yml diff --git a/.decisions/log/01KZXGPY5GVCDA45QGGCTS2T5X.yml b/.decisions/ns/hafeok.ddd/log/01KZXGPY5GVCDA45QGGCTS2T5X.yml similarity index 100% rename from .decisions/log/01KZXGPY5GVCDA45QGGCTS2T5X.yml rename to .decisions/ns/hafeok.ddd/log/01KZXGPY5GVCDA45QGGCTS2T5X.yml diff --git a/.decisions/log/01KZXGRAK0P999C34NXQ3FPC27.yml b/.decisions/ns/hafeok.ddd/log/01KZXGRAK0P999C34NXQ3FPC27.yml similarity index 100% rename from .decisions/log/01KZXGRAK0P999C34NXQ3FPC27.yml rename to .decisions/ns/hafeok.ddd/log/01KZXGRAK0P999C34NXQ3FPC27.yml diff --git a/.decisions/log/01KZXGSFTA68J6PJZFKKCFZPNZ.yml b/.decisions/ns/hafeok.ddd/log/01KZXGSFTA68J6PJZFKKCFZPNZ.yml similarity index 100% rename from .decisions/log/01KZXGSFTA68J6PJZFKKCFZPNZ.yml rename to .decisions/ns/hafeok.ddd/log/01KZXGSFTA68J6PJZFKKCFZPNZ.yml diff --git a/.decisions/log/01KZXHEF9JAERTPMYXGCAVK9HW.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEF9JAERTPMYXGCAVK9HW.yml similarity index 100% rename from .decisions/log/01KZXHEF9JAERTPMYXGCAVK9HW.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEF9JAERTPMYXGCAVK9HW.yml diff --git a/.decisions/log/01KZXHEFD5NKJ1SXWTZ7A34066.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEFD5NKJ1SXWTZ7A34066.yml similarity index 100% rename from .decisions/log/01KZXHEFD5NKJ1SXWTZ7A34066.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEFD5NKJ1SXWTZ7A34066.yml diff --git a/.decisions/log/01KZXHEFGXGD0KGZ4N2FX40D5F.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEFGXGD0KGZ4N2FX40D5F.yml similarity index 100% rename from .decisions/log/01KZXHEFGXGD0KGZ4N2FX40D5F.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEFGXGD0KGZ4N2FX40D5F.yml diff --git a/.decisions/log/01KZXHEFM9MCNTD3YPWT9EXGMS.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEFM9MCNTD3YPWT9EXGMS.yml similarity index 100% rename from .decisions/log/01KZXHEFM9MCNTD3YPWT9EXGMS.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEFM9MCNTD3YPWT9EXGMS.yml diff --git a/.decisions/log/01KZXHEFQH62RSGYTWTR83YMX1.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEFQH62RSGYTWTR83YMX1.yml similarity index 100% rename from .decisions/log/01KZXHEFQH62RSGYTWTR83YMX1.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEFQH62RSGYTWTR83YMX1.yml diff --git a/.decisions/log/01KZXHEFTWDK928D5X36X0TY01.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEFTWDK928D5X36X0TY01.yml similarity index 100% rename from .decisions/log/01KZXHEFTWDK928D5X36X0TY01.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEFTWDK928D5X36X0TY01.yml diff --git a/.decisions/log/01KZXHEFYBPHFW8WS6AQZ7EW2D.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEFYBPHFW8WS6AQZ7EW2D.yml similarity index 100% rename from .decisions/log/01KZXHEFYBPHFW8WS6AQZ7EW2D.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEFYBPHFW8WS6AQZ7EW2D.yml diff --git a/.decisions/log/01KZXHEG2A1JQV8VQMKCT7BQSM.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEG2A1JQV8VQMKCT7BQSM.yml similarity index 100% rename from .decisions/log/01KZXHEG2A1JQV8VQMKCT7BQSM.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEG2A1JQV8VQMKCT7BQSM.yml diff --git a/.decisions/log/01KZXHEG6B4B4XZC078H6A0DR5.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEG6B4B4XZC078H6A0DR5.yml similarity index 100% rename from .decisions/log/01KZXHEG6B4B4XZC078H6A0DR5.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEG6B4B4XZC078H6A0DR5.yml diff --git a/.decisions/log/01KZXHEGA6VDB6WTNQHFN6174N.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGA6VDB6WTNQHFN6174N.yml similarity index 100% rename from .decisions/log/01KZXHEGA6VDB6WTNQHFN6174N.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGA6VDB6WTNQHFN6174N.yml diff --git a/.decisions/log/01KZXHEGD6WCBANRJZ76BRR1CE.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGD6WCBANRJZ76BRR1CE.yml similarity index 100% rename from .decisions/log/01KZXHEGD6WCBANRJZ76BRR1CE.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGD6WCBANRJZ76BRR1CE.yml diff --git a/.decisions/log/01KZXHEGG8GMFWZV86AY1Q162C.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGG8GMFWZV86AY1Q162C.yml similarity index 100% rename from .decisions/log/01KZXHEGG8GMFWZV86AY1Q162C.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGG8GMFWZV86AY1Q162C.yml diff --git a/.decisions/log/01KZXHEGJXN7WM9Z32A0XAEZV9.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGJXN7WM9Z32A0XAEZV9.yml similarity index 100% rename from .decisions/log/01KZXHEGJXN7WM9Z32A0XAEZV9.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGJXN7WM9Z32A0XAEZV9.yml diff --git a/.decisions/log/01KZXHEGNH7JG54HY035X1BS7S.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGNH7JG54HY035X1BS7S.yml similarity index 100% rename from .decisions/log/01KZXHEGNH7JG54HY035X1BS7S.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGNH7JG54HY035X1BS7S.yml diff --git a/.decisions/log/01KZXHEGRJYQ7SJ7N5RPEA9ANP.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGRJYQ7SJ7N5RPEA9ANP.yml similarity index 100% rename from .decisions/log/01KZXHEGRJYQ7SJ7N5RPEA9ANP.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGRJYQ7SJ7N5RPEA9ANP.yml diff --git a/.decisions/log/01KZXHEGV930X88CWEXBYEWE9V.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGV930X88CWEXBYEWE9V.yml similarity index 100% rename from .decisions/log/01KZXHEGV930X88CWEXBYEWE9V.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGV930X88CWEXBYEWE9V.yml diff --git a/.decisions/log/01KZXHEGXWTEC1YTTCA66TXKAC.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEGXWTEC1YTTCA66TXKAC.yml similarity index 100% rename from .decisions/log/01KZXHEGXWTEC1YTTCA66TXKAC.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEGXWTEC1YTTCA66TXKAC.yml diff --git a/.decisions/log/01KZXHEH0MXYTAW72VF4QJ33SB.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEH0MXYTAW72VF4QJ33SB.yml similarity index 100% rename from .decisions/log/01KZXHEH0MXYTAW72VF4QJ33SB.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEH0MXYTAW72VF4QJ33SB.yml diff --git a/.decisions/log/01KZXHEH3ETEWJQA1HWE4W1ME8.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEH3ETEWJQA1HWE4W1ME8.yml similarity index 100% rename from .decisions/log/01KZXHEH3ETEWJQA1HWE4W1ME8.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEH3ETEWJQA1HWE4W1ME8.yml diff --git a/.decisions/log/01KZXHEH6ATHYBFC71CH2P0WE1.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEH6ATHYBFC71CH2P0WE1.yml similarity index 100% rename from .decisions/log/01KZXHEH6ATHYBFC71CH2P0WE1.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEH6ATHYBFC71CH2P0WE1.yml diff --git a/.decisions/log/01KZXHEH9FK4EFSFPPHFHJCTS5.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEH9FK4EFSFPPHFHJCTS5.yml similarity index 100% rename from .decisions/log/01KZXHEH9FK4EFSFPPHFHJCTS5.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEH9FK4EFSFPPHFHJCTS5.yml diff --git a/.decisions/log/01KZXHEHCM5ABV9D5DC14QNZ28.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHCM5ABV9D5DC14QNZ28.yml similarity index 100% rename from .decisions/log/01KZXHEHCM5ABV9D5DC14QNZ28.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHCM5ABV9D5DC14QNZ28.yml diff --git a/.decisions/log/01KZXHEHFANBFBMZJ39T1C5P9K.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHFANBFBMZJ39T1C5P9K.yml similarity index 100% rename from .decisions/log/01KZXHEHFANBFBMZJ39T1C5P9K.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHFANBFBMZJ39T1C5P9K.yml diff --git a/.decisions/log/01KZXHEHHWF1TWC0DH6HKB3RA6.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHHWF1TWC0DH6HKB3RA6.yml similarity index 100% rename from .decisions/log/01KZXHEHHWF1TWC0DH6HKB3RA6.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHHWF1TWC0DH6HKB3RA6.yml diff --git a/.decisions/log/01KZXHEHN3N7HF0PDSMXVQPJWD.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHN3N7HF0PDSMXVQPJWD.yml similarity index 100% rename from .decisions/log/01KZXHEHN3N7HF0PDSMXVQPJWD.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHN3N7HF0PDSMXVQPJWD.yml diff --git a/.decisions/log/01KZXHEHR19GYD06J7C3KE312X.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHR19GYD06J7C3KE312X.yml similarity index 100% rename from .decisions/log/01KZXHEHR19GYD06J7C3KE312X.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHR19GYD06J7C3KE312X.yml diff --git a/.decisions/log/01KZXHEHV863ERYNZX2BWQRAHT.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHV863ERYNZX2BWQRAHT.yml similarity index 100% rename from .decisions/log/01KZXHEHV863ERYNZX2BWQRAHT.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHV863ERYNZX2BWQRAHT.yml diff --git a/.decisions/log/01KZXHEHY1ER3B6AQ6NRQYMNCX.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEHY1ER3B6AQ6NRQYMNCX.yml similarity index 100% rename from .decisions/log/01KZXHEHY1ER3B6AQ6NRQYMNCX.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEHY1ER3B6AQ6NRQYMNCX.yml diff --git a/.decisions/log/01KZXHEJ0QJB6KJ7HEFG097DX9.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJ0QJB6KJ7HEFG097DX9.yml similarity index 100% rename from .decisions/log/01KZXHEJ0QJB6KJ7HEFG097DX9.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJ0QJB6KJ7HEFG097DX9.yml diff --git a/.decisions/log/01KZXHEJ3J4SFVH60EBSGSJS0C.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJ3J4SFVH60EBSGSJS0C.yml similarity index 100% rename from .decisions/log/01KZXHEJ3J4SFVH60EBSGSJS0C.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJ3J4SFVH60EBSGSJS0C.yml diff --git a/.decisions/log/01KZXHEJ6K605BPNWRMKR8DKSM.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJ6K605BPNWRMKR8DKSM.yml similarity index 100% rename from .decisions/log/01KZXHEJ6K605BPNWRMKR8DKSM.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJ6K605BPNWRMKR8DKSM.yml diff --git a/.decisions/log/01KZXHEJ9K2Y0ZX57MCVAJWM3F.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJ9K2Y0ZX57MCVAJWM3F.yml similarity index 100% rename from .decisions/log/01KZXHEJ9K2Y0ZX57MCVAJWM3F.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJ9K2Y0ZX57MCVAJWM3F.yml diff --git a/.decisions/log/01KZXHEJCHN02VR0DVQWQYCYGY.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJCHN02VR0DVQWQYCYGY.yml similarity index 100% rename from .decisions/log/01KZXHEJCHN02VR0DVQWQYCYGY.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJCHN02VR0DVQWQYCYGY.yml diff --git a/.decisions/log/01KZXHEJFTE7AF7WCE4PFX9T09.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJFTE7AF7WCE4PFX9T09.yml similarity index 100% rename from .decisions/log/01KZXHEJFTE7AF7WCE4PFX9T09.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJFTE7AF7WCE4PFX9T09.yml diff --git a/.decisions/log/01KZXHEJKMK34FPVC09YPS8811.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJKMK34FPVC09YPS8811.yml similarity index 100% rename from .decisions/log/01KZXHEJKMK34FPVC09YPS8811.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJKMK34FPVC09YPS8811.yml diff --git a/.decisions/log/01KZXHEJQ46TT044PV8D7HF0DD.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJQ46TT044PV8D7HF0DD.yml similarity index 100% rename from .decisions/log/01KZXHEJQ46TT044PV8D7HF0DD.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJQ46TT044PV8D7HF0DD.yml diff --git a/.decisions/log/01KZXHEJV4XNJ1B1VN0S52MG9R.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJV4XNJ1B1VN0S52MG9R.yml similarity index 100% rename from .decisions/log/01KZXHEJV4XNJ1B1VN0S52MG9R.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJV4XNJ1B1VN0S52MG9R.yml diff --git a/.decisions/log/01KZXHEJYAYZR29E0YVRMHKT54.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEJYAYZR29E0YVRMHKT54.yml similarity index 100% rename from .decisions/log/01KZXHEJYAYZR29E0YVRMHKT54.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEJYAYZR29E0YVRMHKT54.yml diff --git a/.decisions/log/01KZXHEK1JEFGT6P65GA49VAMF.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEK1JEFGT6P65GA49VAMF.yml similarity index 100% rename from .decisions/log/01KZXHEK1JEFGT6P65GA49VAMF.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEK1JEFGT6P65GA49VAMF.yml diff --git a/.decisions/log/01KZXHEK4PZK8XZ4JZ4PQK2P1X.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEK4PZK8XZ4JZ4PQK2P1X.yml similarity index 100% rename from .decisions/log/01KZXHEK4PZK8XZ4JZ4PQK2P1X.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEK4PZK8XZ4JZ4PQK2P1X.yml diff --git a/.decisions/log/01KZXHEK87G21G6HDBARQSB397.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEK87G21G6HDBARQSB397.yml similarity index 100% rename from .decisions/log/01KZXHEK87G21G6HDBARQSB397.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEK87G21G6HDBARQSB397.yml diff --git a/.decisions/log/01KZXHEKBWHRHNRVE1BS94BRMW.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKBWHRHNRVE1BS94BRMW.yml similarity index 100% rename from .decisions/log/01KZXHEKBWHRHNRVE1BS94BRMW.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKBWHRHNRVE1BS94BRMW.yml diff --git a/.decisions/log/01KZXHEKF30H8Q1576AJBH7BJ6.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKF30H8Q1576AJBH7BJ6.yml similarity index 100% rename from .decisions/log/01KZXHEKF30H8Q1576AJBH7BJ6.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKF30H8Q1576AJBH7BJ6.yml diff --git a/.decisions/log/01KZXHEKJBPV2DZKE0055M0GG1.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKJBPV2DZKE0055M0GG1.yml similarity index 100% rename from .decisions/log/01KZXHEKJBPV2DZKE0055M0GG1.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKJBPV2DZKE0055M0GG1.yml diff --git a/.decisions/log/01KZXHEKN8F6KKKAA3EHC3AWXQ.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKN8F6KKKAA3EHC3AWXQ.yml similarity index 100% rename from .decisions/log/01KZXHEKN8F6KKKAA3EHC3AWXQ.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKN8F6KKKAA3EHC3AWXQ.yml diff --git a/.decisions/log/01KZXHEKRD7K84JVQQ37YAE22T.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKRD7K84JVQQ37YAE22T.yml similarity index 100% rename from .decisions/log/01KZXHEKRD7K84JVQQ37YAE22T.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKRD7K84JVQQ37YAE22T.yml diff --git a/.decisions/log/01KZXHEKVD61XMPEJR760DKVDV.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKVD61XMPEJR760DKVDV.yml similarity index 100% rename from .decisions/log/01KZXHEKVD61XMPEJR760DKVDV.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKVD61XMPEJR760DKVDV.yml diff --git a/.decisions/log/01KZXHEKYFZA862VRB46KME6NM.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEKYFZA862VRB46KME6NM.yml similarity index 100% rename from .decisions/log/01KZXHEKYFZA862VRB46KME6NM.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEKYFZA862VRB46KME6NM.yml diff --git a/.decisions/log/01KZXHEM1CYPDR2MYP36ZANY05.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEM1CYPDR2MYP36ZANY05.yml similarity index 100% rename from .decisions/log/01KZXHEM1CYPDR2MYP36ZANY05.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEM1CYPDR2MYP36ZANY05.yml diff --git a/.decisions/log/01KZXHEM5XC319NKKT183Q1845.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEM5XC319NKKT183Q1845.yml similarity index 100% rename from .decisions/log/01KZXHEM5XC319NKKT183Q1845.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEM5XC319NKKT183Q1845.yml diff --git a/.decisions/log/01KZXHEM97VBXFWNHM10ZK6JN0.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEM97VBXFWNHM10ZK6JN0.yml similarity index 100% rename from .decisions/log/01KZXHEM97VBXFWNHM10ZK6JN0.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEM97VBXFWNHM10ZK6JN0.yml diff --git a/.decisions/log/01KZXHEMCMZND8ST8DBQ3877Y7.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEMCMZND8ST8DBQ3877Y7.yml similarity index 100% rename from .decisions/log/01KZXHEMCMZND8ST8DBQ3877Y7.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEMCMZND8ST8DBQ3877Y7.yml diff --git a/.decisions/log/01KZXHEMG0VBZEBSZJZFJSDK5Z.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEMG0VBZEBSZJZFJSDK5Z.yml similarity index 100% rename from .decisions/log/01KZXHEMG0VBZEBSZJZFJSDK5Z.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEMG0VBZEBSZJZFJSDK5Z.yml diff --git a/.decisions/log/01KZXHEMK0GWJQN8WYMD57TRPH.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEMK0GWJQN8WYMD57TRPH.yml similarity index 100% rename from .decisions/log/01KZXHEMK0GWJQN8WYMD57TRPH.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEMK0GWJQN8WYMD57TRPH.yml diff --git a/.decisions/log/01KZXHEMP4MTJ1F07KC413MHJF.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEMP4MTJ1F07KC413MHJF.yml similarity index 100% rename from .decisions/log/01KZXHEMP4MTJ1F07KC413MHJF.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEMP4MTJ1F07KC413MHJF.yml diff --git a/.decisions/log/01KZXHEMSFZ8QK6MJW067NKYPF.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEMSFZ8QK6MJW067NKYPF.yml similarity index 100% rename from .decisions/log/01KZXHEMSFZ8QK6MJW067NKYPF.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEMSFZ8QK6MJW067NKYPF.yml diff --git a/.decisions/log/01KZXHEMWR7PRCFFTWRKA915AM.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEMWR7PRCFFTWRKA915AM.yml similarity index 100% rename from .decisions/log/01KZXHEMWR7PRCFFTWRKA915AM.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEMWR7PRCFFTWRKA915AM.yml diff --git a/.decisions/log/01KZXHEN04RCXYA1EB98JT8WPE.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEN04RCXYA1EB98JT8WPE.yml similarity index 100% rename from .decisions/log/01KZXHEN04RCXYA1EB98JT8WPE.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEN04RCXYA1EB98JT8WPE.yml diff --git a/.decisions/log/01KZXHEN47W57WK8E5MBFJVBQ7.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEN47W57WK8E5MBFJVBQ7.yml similarity index 100% rename from .decisions/log/01KZXHEN47W57WK8E5MBFJVBQ7.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEN47W57WK8E5MBFJVBQ7.yml diff --git a/.decisions/log/01KZXHEN8ZRASX4M10VC5814S3.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEN8ZRASX4M10VC5814S3.yml similarity index 100% rename from .decisions/log/01KZXHEN8ZRASX4M10VC5814S3.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEN8ZRASX4M10VC5814S3.yml diff --git a/.decisions/log/01KZXHENDA4Y49QAE53FK97V41.yml b/.decisions/ns/hafeok.ddd/log/01KZXHENDA4Y49QAE53FK97V41.yml similarity index 100% rename from .decisions/log/01KZXHENDA4Y49QAE53FK97V41.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHENDA4Y49QAE53FK97V41.yml diff --git a/.decisions/log/01KZXHENGJ67KH8NFC7D67RXBP.yml b/.decisions/ns/hafeok.ddd/log/01KZXHENGJ67KH8NFC7D67RXBP.yml similarity index 100% rename from .decisions/log/01KZXHENGJ67KH8NFC7D67RXBP.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHENGJ67KH8NFC7D67RXBP.yml diff --git a/.decisions/log/01KZXHENKTATHVJHDGKMB59PHQ.yml b/.decisions/ns/hafeok.ddd/log/01KZXHENKTATHVJHDGKMB59PHQ.yml similarity index 100% rename from .decisions/log/01KZXHENKTATHVJHDGKMB59PHQ.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHENKTATHVJHDGKMB59PHQ.yml diff --git a/.decisions/log/01KZXHENQEBXRX0GSN90BTEB89.yml b/.decisions/ns/hafeok.ddd/log/01KZXHENQEBXRX0GSN90BTEB89.yml similarity index 100% rename from .decisions/log/01KZXHENQEBXRX0GSN90BTEB89.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHENQEBXRX0GSN90BTEB89.yml diff --git a/.decisions/log/01KZXHENTSEEZY0T2N328FKB6N.yml b/.decisions/ns/hafeok.ddd/log/01KZXHENTSEEZY0T2N328FKB6N.yml similarity index 100% rename from .decisions/log/01KZXHENTSEEZY0T2N328FKB6N.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHENTSEEZY0T2N328FKB6N.yml diff --git a/.decisions/log/01KZXHENYP68WAXVCVAQ3FY1MP.yml b/.decisions/ns/hafeok.ddd/log/01KZXHENYP68WAXVCVAQ3FY1MP.yml similarity index 100% rename from .decisions/log/01KZXHENYP68WAXVCVAQ3FY1MP.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHENYP68WAXVCVAQ3FY1MP.yml diff --git a/.decisions/log/01KZXHEP2ERNT3A0P78RN5DEDZ.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEP2ERNT3A0P78RN5DEDZ.yml similarity index 100% rename from .decisions/log/01KZXHEP2ERNT3A0P78RN5DEDZ.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEP2ERNT3A0P78RN5DEDZ.yml diff --git a/.decisions/log/01KZXHEP5ZC4E9JPZYXA9744YF.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEP5ZC4E9JPZYXA9744YF.yml similarity index 100% rename from .decisions/log/01KZXHEP5ZC4E9JPZYXA9744YF.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEP5ZC4E9JPZYXA9744YF.yml diff --git a/.decisions/log/01KZXHEP9M9H9NRTCW79AQ1Y89.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEP9M9H9NRTCW79AQ1Y89.yml similarity index 100% rename from .decisions/log/01KZXHEP9M9H9NRTCW79AQ1Y89.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEP9M9H9NRTCW79AQ1Y89.yml diff --git a/.decisions/log/01KZXHEPD4F8EWHAQDDV9A042S.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEPD4F8EWHAQDDV9A042S.yml similarity index 100% rename from .decisions/log/01KZXHEPD4F8EWHAQDDV9A042S.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEPD4F8EWHAQDDV9A042S.yml diff --git a/.decisions/log/01KZXHEPGKM61QD5JFZZ9FT5YN.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEPGKM61QD5JFZZ9FT5YN.yml similarity index 100% rename from .decisions/log/01KZXHEPGKM61QD5JFZZ9FT5YN.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEPGKM61QD5JFZZ9FT5YN.yml diff --git a/.decisions/log/01KZXHEPMAXJG39RCR2B18E2Q9.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEPMAXJG39RCR2B18E2Q9.yml similarity index 100% rename from .decisions/log/01KZXHEPMAXJG39RCR2B18E2Q9.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEPMAXJG39RCR2B18E2Q9.yml diff --git a/.decisions/log/01KZXHEPRDW4XH1ESX7A2X8CF2.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEPRDW4XH1ESX7A2X8CF2.yml similarity index 100% rename from .decisions/log/01KZXHEPRDW4XH1ESX7A2X8CF2.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEPRDW4XH1ESX7A2X8CF2.yml diff --git a/.decisions/log/01KZXHEPWK8JYJE4CQ0170Z35Y.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEPWK8JYJE4CQ0170Z35Y.yml similarity index 100% rename from .decisions/log/01KZXHEPWK8JYJE4CQ0170Z35Y.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEPWK8JYJE4CQ0170Z35Y.yml diff --git a/.decisions/log/01KZXHEQ0QMMBZQ6NYEC3MSYC5.yml b/.decisions/ns/hafeok.ddd/log/01KZXHEQ0QMMBZQ6NYEC3MSYC5.yml similarity index 100% rename from .decisions/log/01KZXHEQ0QMMBZQ6NYEC3MSYC5.yml rename to .decisions/ns/hafeok.ddd/log/01KZXHEQ0QMMBZQ6NYEC3MSYC5.yml diff --git a/.decisions/log/01M3PHNSVZMME6XK72GNHHNKV6.yml b/.decisions/ns/hafeok.ddd/log/01M3PHNSVZMME6XK72GNHHNKV6.yml similarity index 100% rename from .decisions/log/01M3PHNSVZMME6XK72GNHHNKV6.yml rename to .decisions/ns/hafeok.ddd/log/01M3PHNSVZMME6XK72GNHHNKV6.yml diff --git a/.decisions/sets/ddd-governance.yml b/.decisions/ns/hafeok.ddd/sets/ddd-governance.yml similarity index 100% rename from .decisions/sets/ddd-governance.yml rename to .decisions/ns/hafeok.ddd/sets/ddd-governance.yml diff --git a/.decisions/log/01KZNF77DG2RJPY7CA63HYTRJ1.yml b/.decisions/ns/hafeok.ledger/log/01KZNF77DG2RJPY7CA63HYTRJ1.yml similarity index 100% rename from .decisions/log/01KZNF77DG2RJPY7CA63HYTRJ1.yml rename to .decisions/ns/hafeok.ledger/log/01KZNF77DG2RJPY7CA63HYTRJ1.yml diff --git a/.decisions/log/01KZPMKQ18D1G3FXS0V0WT1F04.yml b/.decisions/ns/hafeok.ledger/log/01KZPMKQ18D1G3FXS0V0WT1F04.yml similarity index 100% rename from .decisions/log/01KZPMKQ18D1G3FXS0V0WT1F04.yml rename to .decisions/ns/hafeok.ledger/log/01KZPMKQ18D1G3FXS0V0WT1F04.yml diff --git a/.decisions/log/01KZPMKQD0BEDBD3HWCT4CJHA4.yml b/.decisions/ns/hafeok.ledger/log/01KZPMKQD0BEDBD3HWCT4CJHA4.yml similarity index 100% rename from .decisions/log/01KZPMKQD0BEDBD3HWCT4CJHA4.yml rename to .decisions/ns/hafeok.ledger/log/01KZPMKQD0BEDBD3HWCT4CJHA4.yml diff --git a/.decisions/log/01KZPMKQE044SNFJSKFCTD8QJE.yml b/.decisions/ns/hafeok.ledger/log/01KZPMKQE044SNFJSKFCTD8QJE.yml similarity index 100% rename from .decisions/log/01KZPMKQE044SNFJSKFCTD8QJE.yml rename to .decisions/ns/hafeok.ledger/log/01KZPMKQE044SNFJSKFCTD8QJE.yml diff --git a/.decisions/log/01KZPMKQF4BQA4HH2P4QEEYN8V.yml b/.decisions/ns/hafeok.ledger/log/01KZPMKQF4BQA4HH2P4QEEYN8V.yml similarity index 100% rename from .decisions/log/01KZPMKQF4BQA4HH2P4QEEYN8V.yml rename to .decisions/ns/hafeok.ledger/log/01KZPMKQF4BQA4HH2P4QEEYN8V.yml diff --git a/.decisions/log/01KZPMKQGDB1MQC1HWY3HRQQ3G.yml b/.decisions/ns/hafeok.ledger/log/01KZPMKQGDB1MQC1HWY3HRQQ3G.yml similarity index 100% rename from .decisions/log/01KZPMKQGDB1MQC1HWY3HRQQ3G.yml rename to .decisions/ns/hafeok.ledger/log/01KZPMKQGDB1MQC1HWY3HRQQ3G.yml diff --git a/.decisions/log/01KZPMKQHRFFM2ERBBKZYR1EH2.yml b/.decisions/ns/hafeok.ledger/log/01KZPMKQHRFFM2ERBBKZYR1EH2.yml similarity index 100% rename from .decisions/log/01KZPMKQHRFFM2ERBBKZYR1EH2.yml rename to .decisions/ns/hafeok.ledger/log/01KZPMKQHRFFM2ERBBKZYR1EH2.yml diff --git a/.decisions/log/01KZQT2D30HSX412BGC0SFKZKG.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D30HSX412BGC0SFKZKG.yml similarity index 100% rename from .decisions/log/01KZQT2D30HSX412BGC0SFKZKG.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D30HSX412BGC0SFKZKG.yml diff --git a/.decisions/log/01KZQT2D483RSCKQYVT8X0P58S.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D483RSCKQYVT8X0P58S.yml similarity index 100% rename from .decisions/log/01KZQT2D483RSCKQYVT8X0P58S.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D483RSCKQYVT8X0P58S.yml diff --git a/.decisions/log/01KZQT2D58N6NKVE99GP8C2D7N.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D58N6NKVE99GP8C2D7N.yml similarity index 100% rename from .decisions/log/01KZQT2D58N6NKVE99GP8C2D7N.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D58N6NKVE99GP8C2D7N.yml diff --git a/.decisions/log/01KZQT2D6ENP0YA2PSSB4NZX8S.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D6ENP0YA2PSSB4NZX8S.yml similarity index 100% rename from .decisions/log/01KZQT2D6ENP0YA2PSSB4NZX8S.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D6ENP0YA2PSSB4NZX8S.yml diff --git a/.decisions/log/01KZQT2D7DYYZ6AHMR1NDXHNHT.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D7DYYZ6AHMR1NDXHNHT.yml similarity index 100% rename from .decisions/log/01KZQT2D7DYYZ6AHMR1NDXHNHT.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D7DYYZ6AHMR1NDXHNHT.yml diff --git a/.decisions/log/01KZQT2D8JE3GH0A9S4SQ6S3Y0.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D8JE3GH0A9S4SQ6S3Y0.yml similarity index 100% rename from .decisions/log/01KZQT2D8JE3GH0A9S4SQ6S3Y0.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D8JE3GH0A9S4SQ6S3Y0.yml diff --git a/.decisions/log/01KZQT2D9MX8PYZGVMC13TZVDD.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2D9MX8PYZGVMC13TZVDD.yml similarity index 100% rename from .decisions/log/01KZQT2D9MX8PYZGVMC13TZVDD.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2D9MX8PYZGVMC13TZVDD.yml diff --git a/.decisions/log/01KZQT2DAWHXRP35YF345DEYS2.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2DAWHXRP35YF345DEYS2.yml similarity index 100% rename from .decisions/log/01KZQT2DAWHXRP35YF345DEYS2.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2DAWHXRP35YF345DEYS2.yml diff --git a/.decisions/log/01KZQT2DC2G2BRDAGV9RFBG4TV.yml b/.decisions/ns/hafeok.ledger/log/01KZQT2DC2G2BRDAGV9RFBG4TV.yml similarity index 100% rename from .decisions/log/01KZQT2DC2G2BRDAGV9RFBG4TV.yml rename to .decisions/ns/hafeok.ledger/log/01KZQT2DC2G2BRDAGV9RFBG4TV.yml diff --git a/.decisions/log/01KZR5P5MN3ZW61HP7ES1CXYFH.yml b/.decisions/ns/hafeok.ledger/log/01KZR5P5MN3ZW61HP7ES1CXYFH.yml similarity index 100% rename from .decisions/log/01KZR5P5MN3ZW61HP7ES1CXYFH.yml rename to .decisions/ns/hafeok.ledger/log/01KZR5P5MN3ZW61HP7ES1CXYFH.yml diff --git a/.decisions/log/01KZR5PDTKFK9CNYJZRZV8BETY.yml b/.decisions/ns/hafeok.ledger/log/01KZR5PDTKFK9CNYJZRZV8BETY.yml similarity index 100% rename from .decisions/log/01KZR5PDTKFK9CNYJZRZV8BETY.yml rename to .decisions/ns/hafeok.ledger/log/01KZR5PDTKFK9CNYJZRZV8BETY.yml diff --git a/.decisions/log/01KZRA0SBDAF5JQBHC465SAVPX.yml b/.decisions/ns/hafeok.ledger/log/01KZRA0SBDAF5JQBHC465SAVPX.yml similarity index 100% rename from .decisions/log/01KZRA0SBDAF5JQBHC465SAVPX.yml rename to .decisions/ns/hafeok.ledger/log/01KZRA0SBDAF5JQBHC465SAVPX.yml diff --git a/.decisions/log/01KZRA0XNDEH1EHQ0MTY60TFB2.yml b/.decisions/ns/hafeok.ledger/log/01KZRA0XNDEH1EHQ0MTY60TFB2.yml similarity index 100% rename from .decisions/log/01KZRA0XNDEH1EHQ0MTY60TFB2.yml rename to .decisions/ns/hafeok.ledger/log/01KZRA0XNDEH1EHQ0MTY60TFB2.yml diff --git a/.decisions/log/01KZRBQ3YWP1VJ67E7QRCC7YYD.yml b/.decisions/ns/hafeok.ledger/log/01KZRBQ3YWP1VJ67E7QRCC7YYD.yml similarity index 100% rename from .decisions/log/01KZRBQ3YWP1VJ67E7QRCC7YYD.yml rename to .decisions/ns/hafeok.ledger/log/01KZRBQ3YWP1VJ67E7QRCC7YYD.yml diff --git a/.decisions/log/01KZRDFYPZTP1F2S1424N4FM7F.yml b/.decisions/ns/hafeok.ledger/log/01KZRDFYPZTP1F2S1424N4FM7F.yml similarity index 100% rename from .decisions/log/01KZRDFYPZTP1F2S1424N4FM7F.yml rename to .decisions/ns/hafeok.ledger/log/01KZRDFYPZTP1F2S1424N4FM7F.yml diff --git a/.decisions/log/01KZXJX69AJYGN66DQG02Z27BH.yml b/.decisions/ns/hafeok.ledger/log/01KZXJX69AJYGN66DQG02Z27BH.yml similarity index 100% rename from .decisions/log/01KZXJX69AJYGN66DQG02Z27BH.yml rename to .decisions/ns/hafeok.ledger/log/01KZXJX69AJYGN66DQG02Z27BH.yml diff --git a/.decisions/sets/ledger-design.yml b/.decisions/ns/hafeok.ledger/sets/ledger-design.yml similarity index 100% rename from .decisions/sets/ledger-design.yml rename to .decisions/ns/hafeok.ledger/sets/ledger-design.yml diff --git a/ledger-cli/tests/repository_store.rs b/ledger-cli/tests/repository_store.rs new file mode 100644 index 00000000..774319f1 --- /dev/null +++ b/ledger-cli/tests/repository_store.rs @@ -0,0 +1,76 @@ +//! This repository's own store, re-laid out under `.decisions/ns//` +//! in one commit (PRD §3.11, issue 10; AC-82). +//! +//! The history before that commit holds the flat layout of revision v1.8, +//! so this repository is verified by the legacy capability (LP-3.35): with +//! it, `ledger verify --export` is conformant with blame on, which is every +//! acceptance's `L009` author and every entity's immutability verdict as +//! before the re-layout; without it, the repository is refused with exit 2, +//! naming the first flat commit, and never reported conformant. CI checks +//! out the full history, which both runs need. + +use std::path::{Path, PathBuf}; +use std::process::Output; + +fn workspace() -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")).join("..") +} + +fn ledger(args: &[&str]) -> Output { + let mut cmd = assert_cmd::Command::cargo_bin("ledger").expect("binary"); + cmd.arg("--root").arg(workspace()).args(args); + cmd.output().expect("run") +} + +fn text(out: &Output) -> String { + format!("{}{}", String::from_utf8_lossy(&out.stdout), String::from_utf8_lossy(&out.stderr)) +} + +/// Whether the clone carries the flat commits at all: a shallow clone may +/// not, and then there is no flat history to read or to refuse. +fn first_flat_commit() -> Option { + let out = std::process::Command::new("git") + .arg("-C") + .arg(workspace()) + .args(["log", "--first-parent", "--reverse", "--format=%H", "--", ".decisions/log", ".decisions/roles", ".decisions/sig"]) + .output() + .expect("git"); + String::from_utf8_lossy(&out.stdout).lines().next().map(str::to_string) +} + +#[test] +fn the_store_is_laid_out_one_directory_per_namespace() { + let store = workspace().join(".decisions"); + for flat in ["sets", "roles", "log", "sig", "allowed_signers"] { + assert!(!store.join(flat).exists(), "{flat} is a flat path (LP-3.34)"); + } + let namespaces = ledger_core::layout::namespaces(&workspace()); + assert_eq!(namespaces, ["hafeok.ddd", "hafeok.ledger"]); + let logs = |ns: &str| std::fs::read_dir(ledger_core::layout::log_dir(&workspace(), ns)).expect("log").count(); + assert_eq!((logs("hafeok.ddd"), logs("hafeok.ledger")), (164, 23), "PRD §3.11"); +} + +#[test] +fn with_the_legacy_capability_this_repository_verifies_conformant_with_blame_on() { + let out = ledger(&["verify", "--export"]); + let report = text(&out); + assert_eq!(out.status.code(), Some(0), "{report}"); + assert!(report.contains("conformant"), "{report}"); + assert!(report.contains("export: every committed export matches the log byte for byte"), "{report}"); + // Blame was on: every acceptance's introducing commit was found along + // the file's lineage, never the re-layout commit (AC-82). + assert!(!report.contains("[L009]") && !report.contains("[L007]"), "{report}"); +} + +#[test] +fn without_the_capability_this_repository_is_refused_naming_its_first_flat_commit() { + let Some(first) = first_flat_commit() else { + eprintln!("skipped: this clone does not carry the flat history"); + return; + }; + let out = ledger(&["verify", "--export", "--no-legacy-layout"]); + let report = text(&out); + assert_eq!(out.status.code(), Some(2), "the gate could not run (ruling 82): {report}"); + assert!(report.contains(&first), "names the first flat commit {first}: {report}"); + assert!(!report.contains("conformant"), "never reported conformant: {report}"); +} diff --git a/ledger/README.md b/ledger/README.md index e7c48124..3341e4ab 100644 --- a/ledger/README.md +++ b/ledger/README.md @@ -74,7 +74,7 @@ base name, not its path, so the move does not touch it. `docs/ledger-format-v1.md` and `docs/ledger-format-migrations.md` were absorbed into `spec/ledger-protocol.md` and deleted (ruling 22). Issue bodies, rulings, session close-outs, the `.ddd/` store, the hashed basis pointers in -`.decisions/log/` (`format:ledger-format-v1#…`) and other repositories cite the +`.decisions/ns//log/` (`format:ledger-format-v1#…`) and other repositories cite the format document's sections. The one map from those sections to the protocol's is the protocol's Appendix C.0 (ruling 36). Read "ground" in the earlier rulings, in the sense of what a version rests on, as "basis" (ruling 23). diff --git a/ledger/spec/ledger-protocol.md b/ledger/spec/ledger-protocol.md index 8f67dcaf..8564d85c 100644 --- a/ledger/spec/ledger-protocol.md +++ b/ledger/spec/ledger-protocol.md @@ -1651,9 +1651,12 @@ namespace its entities belong to, each set to the namespace whose versions name it, each role file to the namespace whose grants and policies name it. A governed store with more than one namespace is not moved but re-founded (ruling 68); its note lands with issue 9. This repository's -own store and the committed fixture stores are re-laid out by issues 10 -and 9; until then a verifier of this revision refuses them, as LP-3.34 -says. +own store was re-laid out in one commit on 9 October 2026 (issue 10): +`hafeok.ddd`'s 164 change-sets and its set to `ns/hafeok.ddd/`, +`hafeok.ledger`'s 23 and its set to `ns/hafeok.ledger/`, every file byte +for byte, both exports unchanged. The committed fixture stores are +re-laid out by issue 9; until then a verifier of this revision refuses +them, as LP-3.34 says. **The flat layout in history** (rulings 82 and 97; LP-3.35). The re-layout cannot make the flat paths disappear from history, and