@rafiqui987/markode 0.0.0-stage → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +349 -2
- package/dist/cli.js +2304 -0
- package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/web/assets/abnfDiagram-WEYOIA3C-DpbJC7Xp.js +1 -0
- package/dist/web/assets/apl-gfMMiTNf.js +1 -0
- package/dist/web/assets/arc-DC4i8MWg.js +1 -0
- package/dist/web/assets/architecture-WOLXFQ4H-eBViYpWx.js +1 -0
- package/dist/web/assets/architectureDiagram-ZHVYKT53-BUdoz7It.js +36 -0
- package/dist/web/assets/array-BifhSqXX.js +1 -0
- package/dist/web/assets/asciiarmor-C_eisQCp.js +1 -0
- package/dist/web/assets/asn1-DCl_8MCW.js +1 -0
- package/dist/web/assets/asterisk-BEn0Cwpx.js +1 -0
- package/dist/web/assets/blockDiagram-RJAE7QA3-g9DAd_oM.js +140 -0
- package/dist/web/assets/brainfuck-D5EjA2JK.js +1 -0
- package/dist/web/assets/c4Diagram-XDPPPE54-DRNtmahu.js +38 -0
- package/dist/web/assets/channel-B4Lj3Yy_.js +1 -0
- package/dist/web/assets/chunk-2E7WHVMD-pLVU_fk3.js +88 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web/assets/chunk-4EMNKR2T-CILPvkQp.js +1 -0
- package/dist/web/assets/chunk-55XCU76K-D3MGCCrv.js +1 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web/assets/chunk-7S6XSTFO-CN1GsbIT.js +2 -0
- package/dist/web/assets/chunk-AQDTSKZB-CUWKsFsd.js +72 -0
- package/dist/web/assets/chunk-DSNLSHJZ-CwfiRg01.js +129 -0
- package/dist/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/dist/web/assets/chunk-HAGFOTED-Do-8YoBu.js +62 -0
- package/dist/web/assets/chunk-HNE4Q36P-1-JjBgqP.js +1 -0
- package/dist/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web/assets/chunk-NGNAAXSQ-C2Wy9Xmz.js +136 -0
- package/dist/web/assets/chunk-NQOKRVIF-BEHeLMtz.js +213 -0
- package/dist/web/assets/chunk-UHW7PFBP-CC1DKtp5.js +1 -0
- package/dist/web/assets/chunk-VQ5W62QI-CWY0eXsE.js +1 -0
- package/dist/web/assets/chunk-WQQL4CDK-BJl_ufDd.js +10 -0
- package/dist/web/assets/chunk-XXDRQBXY-DKVbKHOf.js +1 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web/assets/chunk-YZO67HFG-dhkHuKWt.js +1 -0
- package/dist/web/assets/chunk-ZAUX2LTX-CA6m357j.js +1 -0
- package/dist/web/assets/chunk-ZCHMQSOR-DUBbqrP7.js +2 -0
- package/dist/web/assets/classDiagram-v2-4MYWR3UA-PXy4ulRK.js +217 -0
- package/dist/web/assets/clike-xvONpD0Z.js +1 -0
- package/dist/web/assets/clojure-BflJGmDX.js +1 -0
- package/dist/web/assets/cmake-84nbDH0I.js +1 -0
- package/dist/web/assets/cobol-DHLQUbN7.js +1 -0
- package/dist/web/assets/coffeescript-De_zI4J0.js +1 -0
- package/dist/web/assets/commonlisp-DgAKBe0r.js +1 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-BDYEjy3u.js +1 -0
- package/dist/web/assets/crystal-Bsdphhtm.js +1 -0
- package/dist/web/assets/css-CnaYoQib.js +1 -0
- package/dist/web/assets/cynefin-EF2NZ3EQ-BOMUQs4F.js +1 -0
- package/dist/web/assets/cynefinDiagram-WF24UDRP-cX0NpQ7L.js +62 -0
- package/dist/web/assets/cypher-p9eYesGn.js +1 -0
- package/dist/web/assets/cytoscape.esm-BegBNzOV.js +321 -0
- package/dist/web/assets/d-DWkQyNnU.js +1 -0
- package/dist/web/assets/dagre-NK4GIZVX-BAP6Gj-L.js +4 -0
- package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web/assets/diagram-CBK3MWTC-B5AONjPA.js +24 -0
- package/dist/web/assets/diagram-I5XIIV2D-BkwhoH5d.js +24 -0
- package/dist/web/assets/diagram-ODIL2UCW-DUFps_5l.js +30 -0
- package/dist/web/assets/diagram-PFBEJUXE-Dj94WcA4.js +3 -0
- package/dist/web/assets/diagram-RJA3I4VV-BRhr049b.js +41 -0
- package/dist/web/assets/diagram-TYUNFSNR-C9EtKuKD.js +200 -0
- package/dist/web/assets/diff-ChtP43wD.js +1 -0
- package/dist/web/assets/dist-6_cnylgs.js +1 -0
- package/dist/web/assets/dist-B-4tAY5T.js +12 -0
- package/dist/web/assets/dist-B91b1nu8.js +1 -0
- package/dist/web/assets/dist-BOIkyUDE.js +1 -0
- package/dist/web/assets/dist-BhvCwF6v.js +1 -0
- package/dist/web/assets/dist-C6oRdq_x.js +1 -0
- package/dist/web/assets/dist-C7gsSbg8.js +11 -0
- package/dist/web/assets/dist-CMFTG-Cz.js +9 -0
- package/dist/web/assets/dist-CRKS1wXG.js +1 -0
- package/dist/web/assets/dist-CUajnf5G.js +1 -0
- package/dist/web/assets/dist-CXAToOJL.js +1 -0
- package/dist/web/assets/dist-CxtEXJtW.js +1 -0
- package/dist/web/assets/dist-D5_2d6Ki.js +1 -0
- package/dist/web/assets/dist-DMEslBFn.js +2 -0
- package/dist/web/assets/dist-DTXSqpYP.js +1 -0
- package/dist/web/assets/dist-DfKlgEia.js +1 -0
- package/dist/web/assets/dist-SlIdOLRu.js +1 -0
- package/dist/web/assets/dist-hiB1k3yb.js +1 -0
- package/dist/web/assets/dist-uYDRxuA0.js +1 -0
- package/dist/web/assets/dockerfile-DJkHQgkl.js +1 -0
- package/dist/web/assets/dtd-DTF72YNO.js +1 -0
- package/dist/web/assets/dylan-S7ucR4pR.js +1 -0
- package/dist/web/assets/ebnf-D4c0_ac3.js +1 -0
- package/dist/web/assets/ebnfDiagram-V4P3TTPT-hUPVHW_L.js +1 -0
- package/dist/web/assets/ecl-BVIeWmwY.js +1 -0
- package/dist/web/assets/eiffel-BEjRio4Q.js +1 -0
- package/dist/web/assets/elk-QONTBCTQ-CK3_-qCI.js +27 -0
- package/dist/web/assets/elm-Cshzl8qu.js +1 -0
- package/dist/web/assets/erDiagram-KYQIGQAA-BnzshuRd.js +99 -0
- package/dist/web/assets/erlang-BV0c4Hdn.js +1 -0
- package/dist/web/assets/eventmodeling-K75KTNOO-YpRkYpNJ.js +1 -0
- package/dist/web/assets/factor-LKH5gN8L.js +1 -0
- package/dist/web/assets/fcl-ClOhbFR7.js +1 -0
- package/dist/web/assets/flowDiagram-IUGLLWBU-DA73lQLy.js +1 -0
- package/dist/web/assets/forth-D6RzAl64.js +1 -0
- package/dist/web/assets/fortran-Bt6PBEDR.js +1 -0
- package/dist/web/assets/ganttDiagram-R7GPNTJY-Cof-TrXj.js +292 -0
- package/dist/web/assets/gas-BHEdbvp9.js +1 -0
- package/dist/web/assets/gherkin-oBAE_ms0.js +1 -0
- package/dist/web/assets/gitGraph-VSP46ZUC-ClyrQrUV.js +1 -0
- package/dist/web/assets/gitGraphDiagram-PDYL7XHY-DcHBmgeW.js +106 -0
- package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web/assets/groovy-CUpZ7dEl.js +1 -0
- package/dist/web/assets/haskell-BRsoo5mP.js +1 -0
- package/dist/web/assets/haxe-DjVOVvNP.js +1 -0
- package/dist/web/assets/http-CLVgA2GD.js +1 -0
- package/dist/web/assets/idl-BUZw3wgd.js +1 -0
- package/dist/web/assets/index-CFg9w5Ih.js +63 -0
- package/dist/web/assets/index-CT9Wzb6W.css +1 -0
- package/dist/web/assets/info-OHQRW6UA-DJuVnR49.js +1 -0
- package/dist/web/assets/infoDiagram-MVDRKAX5-SPivATVi.js +2 -0
- package/dist/web/assets/init-C-OQMol4.js +1 -0
- package/dist/web/assets/ishikawaDiagram-HPEHV2GE-luEQCi0p.js +70 -0
- package/dist/web/assets/javascript-Bu8mWwtz.js +1 -0
- package/dist/web/assets/journeyDiagram-BOSHW7O7-CDWNQ0FV.js +139 -0
- package/dist/web/assets/julia-CQfgDRfP.js +1 -0
- package/dist/web/assets/kanban-definition-FNSA4HC5-kCg2Ntni.js +89 -0
- package/dist/web/assets/katex-B_JcIwqj.js +257 -0
- package/dist/web/assets/katex-DMqEsVPU.js +257 -0
- package/dist/web/assets/katex-Ngnvt50Q.css +1 -0
- package/dist/web/assets/line-Cs-2UOsh.js +1 -0
- package/dist/web/assets/linear-Dn78ogyi.js +1 -0
- package/dist/web/assets/livescript-BXxG0Yva.js +1 -0
- package/dist/web/assets/lua-DPCEkfD_.js +1 -0
- package/dist/web/assets/mathematica-u8YMmbU0.js +1 -0
- package/dist/web/assets/mbox-BEMVcqjs.js +1 -0
- package/dist/web/assets/mermaid-parser.core-XUq3kRg7.js +7 -0
- package/dist/web/assets/mermaid.core-KP0iScKW.js +44 -0
- package/dist/web/assets/mindmap-definition-6OY57UG3-DYfhBOEV.js +98 -0
- package/dist/web/assets/mirc-C9zpzAZU.js +1 -0
- package/dist/web/assets/mllike-B45xgp2S.js +1 -0
- package/dist/web/assets/modelica-CqHI_q-D.js +1 -0
- package/dist/web/assets/mscgen-qgSLujhx.js +1 -0
- package/dist/web/assets/mumps-BSzj6Xyz.js +1 -0
- package/dist/web/assets/nginx-8H7HVH4w.js +1 -0
- package/dist/web/assets/nsis-viPvXFiq.js +1 -0
- package/dist/web/assets/ntriples-CzMBulkp.js +1 -0
- package/dist/web/assets/octave-D2Q8cUp1.js +1 -0
- package/dist/web/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web/assets/oz-BwTct_5T.js +1 -0
- package/dist/web/assets/packet-JDAUHWVQ-m_mxaPh2.js +1 -0
- package/dist/web/assets/pascal-Dp_KdFgX.js +1 -0
- package/dist/web/assets/path-fybaL0A-.js +1 -0
- package/dist/web/assets/pegDiagram-ECIUJNBX-C57XlI0z.js +1 -0
- package/dist/web/assets/perl-BkSkiI9m.js +1 -0
- package/dist/web/assets/pie-XZMESJXO-COU-cPpy.js +1 -0
- package/dist/web/assets/pieDiagram-GNMPY74T-Cgv_MwBq.js +39 -0
- package/dist/web/assets/pig-AF4Hwhju.js +1 -0
- package/dist/web/assets/powershell-D8WpQPaX.js +1 -0
- package/dist/web/assets/properties-C357ku5U.js +1 -0
- package/dist/web/assets/protobuf-D1ij_kNL.js +1 -0
- package/dist/web/assets/pug-Dwd_FmgJ.js +1 -0
- package/dist/web/assets/puppet-BZyAS7I4.js +1 -0
- package/dist/web/assets/python-B_1Jd8HM.js +1 -0
- package/dist/web/assets/q-B9NhS7L_.js +1 -0
- package/dist/web/assets/quadrantDiagram-D57K4MC3-DLP-IJBg.js +7 -0
- package/dist/web/assets/r-CxDmU1I4.js +1 -0
- package/dist/web/assets/radar-ABXABTNO-DVnhW8Tu.js +1 -0
- package/dist/web/assets/railroad-I3PHUGI6-CbNbR4f3.js +1 -0
- package/dist/web/assets/railroad-abnf-LNEFI6M7-QapD3MRY.js +1 -0
- package/dist/web/assets/railroad-ebnf-DWYD2UWJ-CSlvjrRs.js +1 -0
- package/dist/web/assets/railroad-peg-JR7BVNR7-CabNa_kN.js +1 -0
- package/dist/web/assets/railroadDiagram-Y72NRBL7-DnlOXd0I.js +1 -0
- package/dist/web/assets/requirementDiagram-EQYSW5RA-Dq1MJEdy.js +84 -0
- package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/web/assets/rpm-gpDK5sbt.js +1 -0
- package/dist/web/assets/ruby-ChfNwlCY.js +1 -0
- package/dist/web/assets/sankeyDiagram-SY24JHO5--LVb7hhV.js +40 -0
- package/dist/web/assets/sas-C2OyD2Y6.js +1 -0
- package/dist/web/assets/scheme-D9qYN0V5.js +1 -0
- package/dist/web/assets/sequenceDiagram-BLEHNHQU-Cg8W2Kc8.js +169 -0
- package/dist/web/assets/shell-DwuoZtxw.js +1 -0
- package/dist/web/assets/sieve-tLWDfEkZ.js +1 -0
- package/dist/web/assets/simple-mode-DXiLM1-G.js +1 -0
- package/dist/web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/web/assets/smalltalk-BLp5-jwC.js +1 -0
- package/dist/web/assets/solr-B78wSQJQ.js +1 -0
- package/dist/web/assets/sparql-Dz-mlCAC.js +1 -0
- package/dist/web/assets/spreadsheet-CTIncYxj.js +1 -0
- package/dist/web/assets/sql-DuQMFDvy.js +1 -0
- package/dist/web/assets/src-w1h_Rr-8.js +1 -0
- package/dist/web/assets/stateDiagram-v2-A6IESKWZ-ck5PGLTp.js +291 -0
- package/dist/web/assets/stex-DNzd62Q_.js +1 -0
- package/dist/web/assets/stylus-BOVgKnng.js +1 -0
- package/dist/web/assets/swift-DKB6_1j6.js +1 -0
- package/dist/web/assets/swimlanes-B3ENRKFQ--RxIRIY6.js +1 -0
- package/dist/web/assets/swimlanesDiagram-AYQRV4AK-CeoYxgix.js +8 -0
- package/dist/web/assets/tcl-BGfruO1u.js +1 -0
- package/dist/web/assets/textile-C4jVoHG1.js +1 -0
- package/dist/web/assets/tiddlywiki-VlUiK86J.js +1 -0
- package/dist/web/assets/tiki-DTszW0OQ.js +1 -0
- package/dist/web/assets/timeline-definition-JXYKGLGB-Cgtckb20.js +120 -0
- package/dist/web/assets/toml-BPTmHmyx.js +1 -0
- package/dist/web/assets/treeView-D4JQ5SDB-Byi5cU2l.js +1 -0
- package/dist/web/assets/treemap-SAJKECNS-DJ7_3_F8.js +1 -0
- package/dist/web/assets/troff-C2dAgh7P.js +1 -0
- package/dist/web/assets/ttcn-PPSTk1ow.js +1 -0
- package/dist/web/assets/ttcn-cfg-2b4Gb5sE.js +1 -0
- package/dist/web/assets/turtle-Cx3rYX2g.js +1 -0
- package/dist/web/assets/usecaseDiagram-WPOLBNNX-DkTE13SV.js +328 -0
- package/dist/web/assets/vb-BthdM_4N.js +1 -0
- package/dist/web/assets/vbscript-D9f6rSsU.js +1 -0
- package/dist/web/assets/velocity-CqftRsjg.js +1 -0
- package/dist/web/assets/vennDiagram-Q3Y3IDCW-C5G521q2.js +34 -0
- package/dist/web/assets/verilog-CjI9Y6RI.js +1 -0
- package/dist/web/assets/vhdl-kS471soi.js +1 -0
- package/dist/web/assets/wardley-7MLQ67FV-PChC3W6T.js +1 -0
- package/dist/web/assets/wardleyDiagram-IVAIDKWA-B9sJfj7x.js +78 -0
- package/dist/web/assets/webidl-D5jiJvOU.js +1 -0
- package/dist/web/assets/xquery-BKJx4mf9.js +1 -0
- package/dist/web/assets/xychartDiagram-4URNHDU4-CmuAuTkp.js +7 -0
- package/dist/web/assets/yacas-CXXgtw0p.js +1 -0
- package/dist/web/assets/z80-Co3PbHdE.js +1 -0
- package/dist/web/index.html +17 -0
- package/package.json +81 -3
- package/templates/main.md +5 -0
- package/templates/method/area/docs/tasks/.gitkeep +0 -0
- package/templates/method/area-main.md +9 -0
- package/templates/method/root/docs/tasks/_TEMPLATE.md +28 -0
- package/templates/method/skills/markode-close-session/SKILL.md +20 -0
- package/templates/method/skills/markode-method/SKILL.md +68 -0
- package/templates/method/skills/markode-method/templates/architecture-topic.md +12 -0
- package/templates/method/skills/markode-method/templates/phase.md +22 -0
- package/templates/method/skills/markode-method/templates/project-architecture.md +14 -0
- package/templates/method/skills/markode-method/templates/vision.md +22 -0
- package/templates/method/skills/markode-new-task/SKILL.md +22 -0
- package/templates/method/skills/markode-status/SKILL.md +24 -0
- package/templates/proposals/SKILL.md +131 -0
- package/templates/rules/ask-before-commit.md +4 -0
- package/templates/rules/ask-new-dependencies.md +4 -0
- package/templates/rules/ask-when-unclear.md +4 -0
- package/templates/rules/match-conventions.md +4 -0
- package/templates/rules/minimal-changes.md +4 -0
- package/templates/rules/protect-secrets.md +4 -0
- package/templates/rules/tests-with-changes.md +4 -0
- package/templates/rules/update-docs.md +4 -0
- package/templates/rules/verify-before-done.md +4 -0
- package/templates/sdd/openspec/openspec/README.md +89 -0
- package/templates/sdd/openspec/openspec/changes/archive/.gitkeep +0 -0
- package/templates/sdd/openspec/openspec/config.yaml +12 -0
- package/templates/sdd/openspec/openspec/specs/.gitkeep +0 -0
- package/templates/sdd/speckit/.specify/memory/constitution.md +30 -0
- package/templates/sdd/speckit/specs/README.md +82 -0
- package/templates/skill/SKILL.md +91 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 rafiqui1987
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,350 @@
|
|
|
1
|
-
#
|
|
1
|
+
# markode
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://github.com/rafiqui1987/markode/actions/workflows/ci.yml)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
|
|
6
|
+
**See and edit every Markdown file in your project in one place: no split screen, no raw syntax in the
|
|
7
|
+
way.**
|
|
8
|
+
|
|
9
|
+
Run `markode` in any repository and it opens all its `.md` files (`README.md`, `CLAUDE.md`, `AGENTS.md`,
|
|
10
|
+
`docs/`…) in a single editor that is also the preview. Tables, Mermaid diagrams, checklists and math
|
|
11
|
+
render as you type, and change in place. Files are saved exactly as written, never reformatted, so Git
|
|
12
|
+
diffs stay clean and AI agents keep reading plain Markdown.
|
|
13
|
+
|
|
14
|
+
**Why it exists:** [write less, point better](#the-markode-philosophy).
|
|
15
|
+
|
|
16
|
+
<picture>
|
|
17
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/screenshot-dark.png">
|
|
18
|
+
<img alt="markode editor: a repository with a front end and a back end, each with its own tasks; a phase listing tasks from both, a comment thread like in Word and a Mermaid diagram" src="docs/assets/screenshot-light.png">
|
|
19
|
+
</picture>
|
|
20
|
+
|
|
21
|
+
## Quick start
|
|
22
|
+
|
|
23
|
+
Requires Node.js 20 or newer. From the root of any project (monorepos included):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx @rafiqui987/markode
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The very first time, markode asks how you want your projects set up:
|
|
30
|
+
|
|
31
|
+
- **With your answers** (default): answer once (main doc, how to plan the work, the language you
|
|
32
|
+
work in, rules…). They are saved in `~/.markode/defaults.json` and every new project is set up
|
|
33
|
+
with them, without questions. For a project that needs something else: `markode init --custom`.
|
|
34
|
+
- **Ask in each project**: run `markode -D` the first time. Each project asks its own questions.
|
|
35
|
+
|
|
36
|
+
Change your choice any time with `markode setup`. Then the editor opens at `http://localhost:4319`;
|
|
37
|
+
it only listens on `127.0.0.1`.
|
|
38
|
+
|
|
39
|
+
## The markode philosophy
|
|
40
|
+
|
|
41
|
+
**Write less, point better.**
|
|
42
|
+
|
|
43
|
+
Most `CLAUDE.md` files grow into hundreds of lines: generic advice the agent already follows, folder
|
|
44
|
+
listings it can read by itself, the same decision copied in three places. It costs tokens, the agent
|
|
45
|
+
still searches the whole repository, and nobody keeps it up to date. markode turns the docs into a
|
|
46
|
+
**map** and a **memory**:
|
|
47
|
+
|
|
48
|
+
- **No filler.** Write only what the code can't tell: decisions and why, hidden conventions, the state
|
|
49
|
+
of the work. A doc is created when there is something real to put in it.
|
|
50
|
+
- **A map, not an encyclopedia.** The main doc says where things are, not what they say. Each fact
|
|
51
|
+
lives in one place; everything else links to it.
|
|
52
|
+
- **Memory between sessions.** The work lives in task files with a status and a next step, not in a
|
|
53
|
+
chat history. Tomorrow, a new session (or a teammate) picks up where you stopped.
|
|
54
|
+
- **Shaped like your repository.** A single app, a monorepo or a folder of repositories each get the
|
|
55
|
+
structure they need, and the setup asks only what matters for yours.
|
|
56
|
+
|
|
57
|
+
```tree
|
|
58
|
+
CLAUDE.md # the map: projects, where their docs live, how to start a session
|
|
59
|
+
docs/ # vision, shared decisions, phases, work across projects
|
|
60
|
+
service/
|
|
61
|
+
CLAUDE.md # what this project is and its commands, nothing more
|
|
62
|
+
docs/tasks/SVC-007-....md # in-progress · next step: retry payments on timeout
|
|
63
|
+
front/
|
|
64
|
+
docs/tasks/FRO-012-....md # blocked · waits on SVC-007
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Yesterday you worked in `service/` and `front/`. Today you ask the agent *"what's pending?"*
|
|
68
|
+
(`/markode-status`). It reads the map, scans only the task files of each project, and answers:
|
|
69
|
+
SVC-007 is in progress and its next step is the retry; FRO-012 is blocked on it; phase 2 has four
|
|
70
|
+
pending tasks; and one change in `front/` isn't covered by any task. No digging through the code, no
|
|
71
|
+
explaining it all again.
|
|
72
|
+
|
|
73
|
+
markode can't force an agent to follow the map, but it makes the right path the shortest one.
|
|
74
|
+
|
|
75
|
+
## What it does
|
|
76
|
+
|
|
77
|
+
### 1. Every Markdown file of the project, in one place
|
|
78
|
+
|
|
79
|
+
A file tree with every `.md` in the folder where you run it, folders first. Search, expand or collapse
|
|
80
|
+
all, create files and folders inline, hide what you don't need (`.markodeignore`) and delete from the
|
|
81
|
+
right-click menu. Resize the sidebar by dragging its edge, or hide it for more room.
|
|
82
|
+
|
|
83
|
+
### 2. Edit and view at the same time
|
|
84
|
+
|
|
85
|
+
There is no "editor | preview" split. Markdown syntax is hidden everywhere except the line you are
|
|
86
|
+
editing, as in Obsidian, so you read the document as it looks and still write plain Markdown.
|
|
87
|
+
Undo, redo and **discard** (back to how the file was when you opened it) sit next to the breadcrumb.
|
|
88
|
+
|
|
89
|
+
### 3. Formatting without remembering syntax
|
|
90
|
+
|
|
91
|
+
- **`/` commands**: type `/` at the start of a line (or `Ctrl+Space` anywhere) for a menu of headings,
|
|
92
|
+
lists, checklists, tables, code blocks, diagrams, quotes, links and frontmatter.
|
|
93
|
+
- **Selection toolbar**: select text to copy it or turn it into bold, italic, strikethrough, code or a
|
|
94
|
+
link. Hover a button for its variants (`**`/`__`, `*`/`_`, `***`).
|
|
95
|
+
|
|
96
|
+
### 4. Diagrams, tables and lists that are easy to work with
|
|
97
|
+
|
|
98
|
+
- **Mermaid diagrams** (flowcharts, sequences…) render in place and follow the light or dark theme.
|
|
99
|
+
` ```tree ` blocks draw folder structures.
|
|
100
|
+
- **Tables**: edit cells directly. Right-click to insert or delete rows and columns; drag borders to
|
|
101
|
+
resize columns (view only, the file is not changed).
|
|
102
|
+
- **Tables from Excel or Google Sheets**: paste a range of cells and it becomes a Markdown table.
|
|
103
|
+
`Alt+H` toggles whether the first row is a header.
|
|
104
|
+
- **Checklists**: click to tick. After `Enter` on a task, `Ctrl+Enter` ticks the new one.
|
|
105
|
+
- And more: KaTeX math (`$x^2$`, `$$…$$`), footnotes on hover, local and remote images, code blocks with
|
|
106
|
+
only their language label showing.
|
|
107
|
+
|
|
108
|
+
### 5. Work in your language
|
|
109
|
+
|
|
110
|
+
Most AI agents, and most teams, work best with docs in English. If English isn't easy for you, you
|
|
111
|
+
don't have to choose:
|
|
112
|
+
|
|
113
|
+
- Add a language to review the docs in, from **Settings → Document languages** or with
|
|
114
|
+
`markode translate`: Spanish, French, Portuguese, German or Italian, or **type any other** (Japanese,
|
|
115
|
+
Dutch…). Then ask your agent for **`/markode translate`** (markode has a button to copy it), and
|
|
116
|
+
markode shows **every doc in that language**. Read the architecture, tick tasks, write notes and fix
|
|
117
|
+
a rule, all in your language.
|
|
118
|
+
- The files in the repository **stay in one source language** (English by default), so the agent and
|
|
119
|
+
the rest of the team keep reading one consistent version.
|
|
120
|
+
- Your edits are kept as a translation until you ask for `/markode translate` again. Before changing
|
|
121
|
+
a source file, the agent lists what would change and applies only what you approve. The top bar
|
|
122
|
+
shows how many docs are behind, and copies the command when clicked.
|
|
123
|
+
- Translating is always on purpose: it never happens as a side effect of other work.
|
|
124
|
+
- The menus are in English by default and don't depend on the docs' language: pick English, Spanish,
|
|
125
|
+
French, Portuguese, German or Italian in **Settings → General**.
|
|
126
|
+
|
|
127
|
+
Example: you open `docs/tasks/T-004-login.md` in Spanish, add an acceptance criterion and tick two
|
|
128
|
+
others. After `/markode translate` and your OK, the English file has the new criterion and the ticks,
|
|
129
|
+
and the agent works from it.
|
|
130
|
+
|
|
131
|
+
### 6. A method to plan and follow the work
|
|
132
|
+
|
|
133
|
+
`markode init` offers the **markode method**, a way of organizing the project so that you and the
|
|
134
|
+
agent always know what is being built, how, and what comes next:
|
|
135
|
+
|
|
136
|
+
```tree
|
|
137
|
+
CLAUDE.md # short: map, commands, how to start and close a session
|
|
138
|
+
docs/
|
|
139
|
+
tasks/T-001-....md # one file per task: status, goal, acceptance checklist, next step, log
|
|
140
|
+
vision.md # when you define what the project is, for whom, what is out of scope
|
|
141
|
+
architecture/<topic>.md # with the first decision on that topic
|
|
142
|
+
phases/02-checkout.md # when you plan a milestone: goal, its tasks, definition of done
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
```mermaid
|
|
146
|
+
flowchart LR
|
|
147
|
+
V[Vision] --> A[Architecture] --> P[Phase] --> T[Tasks] --> W[Work] --> C[Close the session]
|
|
148
|
+
C -->|next step| W
|
|
149
|
+
C -->|phase done| P
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
- **It starts small**: the setup creates only the task folder and its template. The agent creates the
|
|
153
|
+
vision, architecture and phase docs from templates (skill `markode-method`) when there is something
|
|
154
|
+
to write. A task's status lives only in its file: there is no index to keep in sync.
|
|
155
|
+
- **It knows what kind of project it is**, and asks only what that kind needs. When the files don't
|
|
156
|
+
make it clear, it asks:
|
|
157
|
+
|
|
158
|
+
| Kind | Detected by | Asks | Its docs |
|
|
159
|
+
|---|---|---|---|
|
|
160
|
+
| App | framework, `bin`, `Dockerfile`, `main.go`… | nothing | vision, architecture, phases |
|
|
161
|
+
| Library | `main`/`exports` in a public package, Cargo `[lib]` | is it published? | public API and versioning, changelog |
|
|
162
|
+
| Mobile | React Native, Flutter, `android/` + `ios/` | target platforms | releases and stores |
|
|
163
|
+
| Data / ML | notebooks, `dvc.yaml`, `MLproject` | where the data lives, how experiments are tracked | datasets, experiment log |
|
|
164
|
+
| Infrastructure | Terraform, Pulumi, Helm, Kustomize | environments | runbooks |
|
|
165
|
+
| Microservices | several services + proto/OpenAPI or compose | where the contracts live | contracts as shared architecture |
|
|
166
|
+
|
|
167
|
+
It also recognizes monorepos with workspaces, a front end and a back end without workspaces, and
|
|
168
|
+
folders of repositories; and if the project already has docs, it asks which are the official ones
|
|
169
|
+
and points the agent to them instead of creating new ones.
|
|
170
|
+
- **The main doc stays short** and points to `docs/`. If `CLAUDE.md` or `AGENTS.md` already exist,
|
|
171
|
+
they are not rewritten: markode adds a "Workflow" section with the map and the session routine.
|
|
172
|
+
- **Each fact lives in one place**: decisions in `architecture/`, progress in the task files.
|
|
173
|
+
- **Sessions pick up where they stopped**: the agent looks for tasks `in-progress`, reads their "Next
|
|
174
|
+
step" and tells you where you left off. `/markode-status` sums up what is in progress, blocked and
|
|
175
|
+
pending, per project; `/markode-new-task` creates a task in the right place; and
|
|
176
|
+
`/markode-close-session` logs what was done, the next step and the status.
|
|
177
|
+
- **Monorepos**: each project (`apps/web`, `services/api`… or each repository in a folder of repos)
|
|
178
|
+
gets its own short `CLAUDE.md`/`AGENTS.md`, tasks with its own prefix (`WEB-001`, `API-001`),
|
|
179
|
+
proposals and, with its first decision, a `docs/ARCHITECTURE.md`. The root main doc is the
|
|
180
|
+
overview: a table of the projects, what each one is and where its docs live. The root `docs/` holds
|
|
181
|
+
vision, phases and work across projects (`CORE-001`). The agent reads only the project it is
|
|
182
|
+
working on. A project's existing `CLAUDE.md`/`AGENTS.md` is kept as is: markode only adds a short
|
|
183
|
+
block pointing to its docs.
|
|
184
|
+
- **Every agent finds the instructions**: Claude Code reads `CLAUDE.md`; Codex, Cursor, Gemini and
|
|
185
|
+
others read `AGENTS.md`. Where a folder has only one, markode offers the other, pointing to it (a
|
|
186
|
+
one-line `CLAUDE.md` with `@AGENTS.md`, or an `AGENTS.md` that sends agents to `CLAUDE.md`) in the
|
|
187
|
+
Dashboard and from the agent at the start of a session (`markode link`); the setup offers the
|
|
188
|
+
`CLAUDE.md` one. Nothing is copied; `markode link --skip` stops the offer.
|
|
189
|
+
- **The Dashboard** shows each phase with its progress and tasks, and a board of what is in progress,
|
|
190
|
+
blocked and pending.
|
|
191
|
+
|
|
192
|
+
**Prefer spec-driven development?** Pick one of these instead, and the Dashboard follows it too:
|
|
193
|
+
|
|
194
|
+
| Option | What you get |
|
|
195
|
+
|---|---|
|
|
196
|
+
| **[OpenSpec](https://github.com/Fission-AI/OpenSpec)** | `openspec/` with specs and proposed changes; the dashboard shows each change and its tasks |
|
|
197
|
+
| **[GitHub Spec Kit](https://github.com/github/spec-kit)** | a constitution and one folder per feature (spec → plan → tasks); the dashboard shows what each has |
|
|
198
|
+
|
|
199
|
+
markode runs their official installer, which also adds their commands to your agent (`/opsx:*`,
|
|
200
|
+
`/speckit-*`). If it can't (Spec Kit needs [uv](https://docs.astral.sh/uv/)), it creates a compatible
|
|
201
|
+
structure with a guide on how to add them later. Projects that already use either are detected and
|
|
202
|
+
shown as they are. Choose **None** and markode adds no structure or workflow at all.
|
|
203
|
+
|
|
204
|
+
### 7. Proposals and comments: answer the AI with clicks
|
|
205
|
+
|
|
206
|
+
When an answer would be long or has options to choose from (or when you ask for one), the agent writes
|
|
207
|
+
a **proposal** instead of a long chat message: options with small ASCII or Mermaid diagrams, choices to
|
|
208
|
+
tick, open questions, and the docs the decision will change. You answer in markode:
|
|
209
|
+
|
|
210
|
+
```text
|
|
211
|
+
┌ Proposal: Authentication ─────────────────────────────┐
|
|
212
|
+
│ Option A (recommended) │
|
|
213
|
+
│ Browser ──REST──▶ Gateway ──gRPC──▶ Users ──▶ (DB) │
|
|
214
|
+
│ │
|
|
215
|
+
│ Your choice │
|
|
216
|
+
│ (•) A: gateway validates │
|
|
217
|
+
│ ( ) B: each service validates │
|
|
218
|
+
│ │
|
|
219
|
+
│ [ Done, send my answer ] │
|
|
220
|
+
└───────────────────────────────────────────────────────┘
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
- **Tick options**: a list marked `<!-- choose: one -->` behaves like radio buttons; any other
|
|
224
|
+
checklist allows several.
|
|
225
|
+
- **Comment like in Word**: select text and press 💬. The text is highlighted and the thread shows next
|
|
226
|
+
to it, with replies and a button to resolve it. In the file, a comment is an HTML comment, invisible
|
|
227
|
+
on GitHub and readable by the agent:
|
|
228
|
+
|
|
229
|
+
```md
|
|
230
|
+
- [x] A: gateway validates
|
|
231
|
+
<!-- comment by Ana, 2026-10-22, on "gateway validates": What if it goes down? -->
|
|
232
|
+
<!-- reply by AI, 2026-10-22: Two instances minimum; added to the architecture. -->
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
- **Send your answer**: the button marks the proposal as answered and copies a message to paste in your
|
|
236
|
+
AI chat. The agent replies to your comments and updates every doc that depends on the decision
|
|
237
|
+
(tasks, phases, architecture…). A proposal is temporary: once applied, it is deleted and the decision
|
|
238
|
+
lives in those docs.
|
|
239
|
+
- In a monorepo, proposals are organized **by project and topic** (`apps/web/docs/proposals/auth/…`);
|
|
240
|
+
in a big single project they can be organized by topic instead of one folder.
|
|
241
|
+
|
|
242
|
+
It comes with the markode method, and can be turned on or off for any project in **Settings**.
|
|
243
|
+
|
|
244
|
+
### 8. Your AI agent's skills
|
|
245
|
+
|
|
246
|
+
The **Skills** tab lists every global skill you have for Claude Code, Codex, Gemini, Copilot or Cursor
|
|
247
|
+
([Agent Skills](https://agentskills.io) format). Tag them to group them, expand one to read or edit its
|
|
248
|
+
`SKILL.md`, see problems that would stop an agent from loading it, and **add it to the current project**
|
|
249
|
+
(`.claude/skills/` and/or `.agents/skills/`). Tags are stored in `~/.markode/skills.json`, never in the
|
|
250
|
+
skill.
|
|
251
|
+
|
|
252
|
+
### 9. Also included
|
|
253
|
+
|
|
254
|
+
- **Changes**: Git diff of your Markdown, grouped by folder and section.
|
|
255
|
+
- **Rules**: your library of reusable rules, written into `CLAUDE.md` or `AGENTS.md` where you apply
|
|
256
|
+
them. It starts with common ones for AI agents (ask before committing, verify before saying it's done,
|
|
257
|
+
minimal changes, protect secrets…); edit them and add your own. The setup applies none unless you
|
|
258
|
+
choose them. The library lives in `~/.markode/rules/`.
|
|
259
|
+
- **Settings**, by section: General (interface language, theme), Editor (font, size, line spacing,
|
|
260
|
+
margins, line width, wrapping), Document languages and Proposals.
|
|
261
|
+
|
|
262
|
+
## Keyboard shortcuts
|
|
263
|
+
|
|
264
|
+
| Keys | Action |
|
|
265
|
+
|---|---|
|
|
266
|
+
| `/` at the start of a line, `Ctrl+Space` | Insert menu |
|
|
267
|
+
| `Ctrl+Enter` | Tick or untick the task on the current line |
|
|
268
|
+
| `Alt+H` | After pasting a table from a spreadsheet: toggle the header row |
|
|
269
|
+
| `Ctrl+Z` / `Ctrl+Y` | Undo / redo |
|
|
270
|
+
| `Ctrl+F` / `Ctrl+H` | Find / find and replace (box at the top right) |
|
|
271
|
+
| `Enter` / `Shift+Enter` | Next / previous match |
|
|
272
|
+
| `Alt+C` / `Alt+W` / `Alt+R` | Match case / whole word / regular expression |
|
|
273
|
+
| `Escape` | Close a menu or the selection toolbar |
|
|
274
|
+
|
|
275
|
+
## Commands
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
markode # set up the project if needed, then open the editor
|
|
279
|
+
markode init # run the setup again (with your defaults, if you saved them)
|
|
280
|
+
markode init --custom # set up this project with its own answers
|
|
281
|
+
markode setup # change your defaults, or switch to asking in each project
|
|
282
|
+
markode -D # first run: don't save defaults, ask in each project
|
|
283
|
+
markode serve # open the editor without the setup
|
|
284
|
+
markode serve --port 5000 --no-open
|
|
285
|
+
markode translate # choose languages to review the docs in (also: markode --translate)
|
|
286
|
+
markode link # only CLAUDE.md or only AGENTS.md? add the other one, pointing to it
|
|
287
|
+
markode -v # version
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
To keep it installed: `npm install -g @rafiqui987/markode` (or `pnpm add -g @rafiqui987/markode`).
|
|
291
|
+
|
|
292
|
+
## For AI agents
|
|
293
|
+
|
|
294
|
+
`markode init` installs `.claude/skills/markode/SKILL.md`, which tells the agent how to write Markdown
|
|
295
|
+
that markode presents well, and gives it two commands:
|
|
296
|
+
|
|
297
|
+
| Command | What the agent does | When |
|
|
298
|
+
|---|---|---|
|
|
299
|
+
| `/markode sync` | Keeps the docs consistent: applies answered proposals, ticks phases from their tasks, checks the projects table and broken links (`markode check`) | Start and end of a session, after editing docs |
|
|
300
|
+
| `/markode translate` | Translates what is behind; asks before changing any source file | Only when you ask |
|
|
301
|
+
|
|
302
|
+
It also writes into the main doc:
|
|
303
|
+
|
|
304
|
+
- the working rules you picked, between `<!-- markode:rules:start -->` and `<!-- markode:rules:end -->`;
|
|
305
|
+
- how the project plans its work (the markode method, OpenSpec or Spec Kit), between
|
|
306
|
+
`<!-- markode:workflow:start -->` and `<!-- markode:workflow:end -->`. With the markode method it
|
|
307
|
+
also installs the `markode-new-task` and `markode-close-session` skills.
|
|
308
|
+
- with proposals on, how the agent writes proposals and answers comments (skill
|
|
309
|
+
`markode-proposals`), between `<!-- markode:proposals:start -->` and `<!-- markode:proposals:end -->`.
|
|
310
|
+
|
|
311
|
+
When the agent writes a proposal, it runs `markode wait <proposal>` in the background: it waits
|
|
312
|
+
without using tokens until you press "Done, send my answer" in markode, then hands the agent your
|
|
313
|
+
choices, open questions and comments, and the agent continues by itself. If no session was open, the
|
|
314
|
+
next one applies the answer first.
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
markode check [--json] # what /markode sync fixes
|
|
318
|
+
markode wait <proposal.md> # wait for the user's answer, then print it
|
|
319
|
+
markode translate --status [--json] # translations + files not in the source language
|
|
320
|
+
markode translate --mark [--lang xx] <path...>|--all # record translations as in sync
|
|
321
|
+
markode translate --keep <path...> # keep files in their current language
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## Uninstall
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
npm uninstall -g markode # or: pnpm remove -g markode (use the one you installed it with)
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
To remove it from a project, delete `.markode/` and `.claude/skills/markode*/`, the `.markode/` line in
|
|
331
|
+
`.gitignore`, and the `markode:rules`, `markode:workflow` and `markode:proposals` blocks in your main doc (keep the text
|
|
332
|
+
inside if you still want it). Editor settings, rule presets and skill tags live in `~/.markode`.
|
|
333
|
+
|
|
334
|
+
## Development
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
pnpm install
|
|
338
|
+
pnpm dev # server on :4319 (this repo as root) + Vite on http://localhost:4320
|
|
339
|
+
pnpm build # web → dist/web, CLI → dist/cli.js
|
|
340
|
+
pnpm typecheck
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
To try your local build in other projects, run `pnpm build && pnpm add -g "link:$PWD"`.
|
|
344
|
+
|
|
345
|
+
See [docs/SPEC.md](docs/SPEC.md) for the specification and [CONTRIBUTING.md](CONTRIBUTING.md) to
|
|
346
|
+
contribute.
|
|
347
|
+
|
|
348
|
+
## License
|
|
349
|
+
|
|
350
|
+
[MIT](LICENSE)
|