aboutsummaryrefslogtreecommitdiff
path: root/mling/res/CHECKLIST.md
diff options
context:
space:
mode:
Diffstat (limited to 'mling/res/CHECKLIST.md')
-rw-r--r--mling/res/CHECKLIST.md100
1 files changed, 100 insertions, 0 deletions
diff --git a/mling/res/CHECKLIST.md b/mling/res/CHECKLIST.md
new file mode 100644
index 0000000..84ca48b
--- /dev/null
+++ b/mling/res/CHECKLIST.md
@@ -0,0 +1,100 @@
+> [!NOTE]
+>
+> You are using `mling` to create your `mingling` project. Before proceeding, please fill in your project information.
+
+## Question 1: What is your project name?
+
+Use `snake-case` style to fill in the project name. It will serve as your `crate` name:
+
+```name
+my-cli
+```
+
+## Question 2: Which Mingling version do you need?
+
+> [!TIP]
+>
+> You must select **EXACTLY ONE** option
+
+- [x] `ver:0.2` Based on the `Mingling@0.2.x` template
+
+## Question 3: What is your project layout style?
+
+> [!TIP]
+>
+> You must select **EXACTLY ONE** option
+
+- [x] `base:flat` Flat mode (Simple)
+
+```
+# The most basic mode
+./main.rs
+./foo.rs
+./bar.rs
+./globals.rs
+```
+
+- [ ] `base:modularity` Modular mode
+
+```
+├─ module1/ # Stores private concepts internally
+│ ├── mod.rs # Command registration
+│ ├── chains/ # Core logic
+│ └── renderers/ # Result rendering
+├─ module2/
+│ ├── mod.rs # Command registration
+│ ├── chains/ # Core logic
+│ └── renderers/ # Result rendering
+├─ global/ # Stores public concepts in the global directory
+│ ├── errors/ # Global Errors
+│ ├── setups/ # Setups
+│ └── resources/ # Global Resources
+└─ main.rs
+```
+
+- [ ] `base:command` Command mode
+
+```
+# Stores all commands
+├─ commands/ # Organizes subcommands by hierarchy
+│ ├── remote/add.rs # "remote add"
+│ ├── remote/rm.rs # "remote rm"
+│ ├── remote.rs # Not a command,
+│ │ but a local implementation for
+│ │ the remote series of commands
+│ ├── foo.rs # "foo"
+│ └── bar.rs # "bar"
+├─ errors/ # Global Errors
+├─ resources/ # Global Resources
+├─ setups/ # Setups
+└─ main.rs
+```
+
+## Question 4: What additional features do you need to enable?
+
+> [!TIP]
+>
+> All of the following options are **OPTIONAL**
+
+**Features:**
+
+- [ ] `feat:structural_renderer` Structural renderer (JSON/YAML) for feature output
+- [ ] `feat:comp` Dynamic completion system
+- [ ] `feat:clap` Clap support
+- [ ] `feat:parser` Mingling Picker parser support
+- [ ] `feat:async` Async support
+- [ ] `feat:dispatch_tree` Compile-time dispatch tree (solidify all commands)
+- [ ] `feat:extra_macros` Extra macro support
+
+**Implementations:**
+
+- [ ] `impl:exit_code` Introduce exit code control
+- [ ] `impl:fallback` Fallback functionality when no command is given
+
+---
+
+After filling in the above, execute the following command to create the project:
+
+```
+~# mling gen
+```