{"id":37391149,"url":"https://github.com/jolution/todo-nukem","last_synced_at":"2026-01-16T05:31:23.735Z","repository":{"id":231348432,"uuid":"771729107","full_name":"jolution/todo-nukem","owner":"jolution","description":"Come get some!","archived":false,"fork":false,"pushed_at":"2026-01-12T21:15:12.000Z","size":702,"stargazers_count":33,"open_issues_count":6,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-13T01:48:13.206Z","etag":null,"topics":["opensource"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jolution.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["jolution","juliankasimir"]}},"created_at":"2024-03-13T20:54:17.000Z","updated_at":"2026-01-12T21:15:16.000Z","dependencies_parsed_at":"2024-04-03T16:59:05.216Z","dependency_job_id":"289b8c59-b58d-4dd6-b4d7-d5c25b1f19ab","html_url":"https://github.com/jolution/todo-nukem","commit_stats":null,"previous_names":["jolution/todo-nukem"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jolution/todo-nukem","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jolution%2Ftodo-nukem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jolution%2Ftodo-nukem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jolution%2Ftodo-nukem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jolution%2Ftodo-nukem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jolution","download_url":"https://codeload.github.com/jolution/todo-nukem/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jolution%2Ftodo-nukem/sbom","scorecard":{"id":1241355,"data":{"date":"2025-02-23T19:47:08Z","repo":{"name":"github.com/jolution/todo-nukem","commit":"b303948844adb6808d274201909c94fb4048c602"},"scorecard":{"version":"v4.13.1","commit":"49c0eed3a423f00c872b5c3c9f1bbca9e8aae799"},"score":4.8,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#binary-artifacts"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":0,"reason":"0 out of 8 merged PRs checked by a CI test -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#ci-tests"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#cii-best-practices"}},{"name":"Code-Review","score":0,"reason":"found 14 unreviewed changesets out of 14 -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#code-review"}},{"name":"Contributors","score":3,"reason":"1 different organizations found -- score normalized to 3","details":["Info: contributors work for eviden"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#contributors"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#dangerous-workflow"}},{"name":"Dependency-Update-Tool","score":0,"reason":"no update tool detected","details":["Warn: tool 'RenovateBot' is not used: Follow the instructions from https://docs.renovatebot.com/configuration-options/. (Low effort)","Warn: tool 'Dependabot' is not used: Follow the instructions from https://docs.github.com/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates. (Low effort)","Warn: tool 'PyUp' is not used: Follow the instructions from https://docs.pyup.io/docs. (Low effort)","Warn: tool 'Sonatype Lift' is not used: Follow the instructions from https://help.sonatype.com/lift/getting-started. (Low effort)"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#dependency-update-tool"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no OSSFuzz integration found: Follow the steps in https://github.com/google/oss-fuzz to integrate fuzzing for your project.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)","Warn: no OneFuzz integration found: Follow the steps in https://github.com/microsoft/onefuzz to start fuzzing for your project.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)","Warn: no GoBuiltInFuzzer integration found: Follow the steps in https://go.dev/doc/fuzz/ to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no PythonAtherisFuzzer integration found: Follow the steps in https://github.com/google/atheris to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no CLibFuzzer integration found: Follow the steps in https://llvm.org/docs/LibFuzzer.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no CppLibFuzzer integration found: Follow the steps in https://llvm.org/docs/LibFuzzer.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no SwiftLibFuzzer integration found: Follow the steps in https://google.github.io/oss-fuzz/getting-started/new-project-guide/swift-lang/ to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no RustCargoFuzzer integration found: Follow the steps in https://rust-fuzz.github.io/book/cargo-fuzz.html to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no JavaJazzerFuzzer integration found: Follow the steps in https://github.com/CodeIntelligenceTesting/jazzer to enable fuzzing on your project.\nOver time, try to add fuzzing for more functionalities of your project. (Medium effort)","Warn: no ClusterFuzzLite integration found: Follow the steps in https://github.com/google/clusterfuzzlite to integrate fuzzing as part of CI.\nOver time, try to add fuzzing for more functionalities of your project. (High effort)","Warn: no HaskellPropertyBasedTesting integration found: Use one of the following frameworks to fuzz your project:\nQuickCheck: https://hackage.haskell.org/package/QuickCheck\nhedgehog: https://hedgehog.qa/\nvalidity: https://github.com/NorfairKing/validity\nsmallcheck: https://hackage.haskell.org/package/smallcheck\nhspec: https://hspec.github.io/\ntasty: https://hackage.haskell.org/package/tasty (High effort)","Warn: no TypeScriptPropertyBasedTesting integration found: Use fast-check: https://github.com/dubzzz/fast-check (High effort)","Warn: no JavaScriptPropertyBasedTesting integration found: Use fast-check: https://github.com/dubzzz/fast-check (High effort)"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: License file found in expected location: LICENSE:1","Info: FSF or OSI recognized license: LICENSE:1"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#license"}},{"name":"Maintained","score":0,"reason":"0 commit(s) out of 30 and 0 issue activity out of 7 found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"no published package detected","details":["Warn: no GitHub/GitLab publishing workflow detected"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":8,"reason":"dependency not pinned by hash detected -- score normalized to 8","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scorecard.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/jolution/todo-nukem/scorecard.yml/main?enable=pin","Info:   2 out of   3 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool","Warn: CodeQL tool not detected"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#sast"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/jolution/.github/SECURITY.md:1","Info: Found linked content: github.com/jolution/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/jolution/.github/SECURITY.md:1","Info: Found text in security policy: github.com/jolution/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":["Warn: no GitHub releases found"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#signed-releases"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:18","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":10,"reason":"no vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/49c0eed3a423f00c872b5c3c9f1bbca9e8aae799/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2026-01-13T01:49:07.784Z","repository_id":231348432,"created_at":"2026-01-13T01:49:07.785Z","updated_at":"2026-01-13T01:49:07.785Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["opensource"],"created_at":"2026-01-16T05:31:23.018Z","updated_at":"2026-01-16T05:31:23.725Z","avatar_url":"https://github.com/jolution.png","language":null,"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Shows the banner of TODO NUKEM, with its logo\" src=\"./resources/svg/todonukem.svg\" width=\"700\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits\u0026logoColor=white)](https://conventionalcommits.org)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n\u003c/div\u003e\n\n# Coding Comments Convention\n\n**Working Draft**\n\nA specification for enhancing TODO messages with emojis for easier comprehension and organization.\n\n## Usage\n\n| Package | IDE / Environment | Description | Status |\n|---------|-------------------|-------------|--------|\n| [VSCode Extension](https://github.com/jolution/todo-nukem-vscode) | Visual Studio Code | Generator, viewer and snippets for the TODO Nukem convention | Alpha |\n| [ESLint Rule](https://github.com/jolution/eslint-plugin-todo-nukem) | ESLint | Custom rule to validate the convention | Alpha |\n| [PR Ticket Link Action](./github-actions/pr-ticket-link) | GitHub Actions | Automatically adds ticket links to Pull Request descriptions based on branch names | Alpha |\n\n\n### Technical integration\n\n#### Block-Commit (Commit Guard)\n\nThe `[block-commit]` meta block is used to prevent a commit if this marker is present in the code. This is intended as a safety mechanism for critical TODOs that must be resolved before code can be committed.\n\n**Note:** This block does not work out of the box. You need to configure your tooling (e.g., git hooks) to enforce this rule. For example, with [lefthook](https://github.com/evilmartians/lefthook), you can block commits containing this marker.\n\n**Example in source code:**\n\n```js\n// TODO: [low] [fix] [optimize] Fix this logic [block-commit]\n```\n\n**Visual display (with decorations):**\n\n```js\n// TODO: 🟩 🐛 🛠️ Fix this logic ⛔\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eExample solution: Commit blocking with lefthook\u003c/summary\u003e\n\n```yaml\ncommands:\n  block-commit-check:\n    run: |\n      MARKER=\"[block-commit]\"\n      if grep -l \"$MARKER\" {staged_files} 2\u003e/dev/null; then\n        echo \"⛔ Commit blocked: Found '$MARKER' marker in staged files\"\n        echo \"Please resolve all TODOs with '$MARKER' before committing\"\n        echo \"\"\n        echo \"Found in:\"\n        grep -Hn \"$MARKER\" {staged_files} 2\u003e/dev/null\n        echo \"\"\n        echo \"This blocking is based on TODO NUKEM convention.\"\n        echo \" Learn more: https://github.com/jolution/todo-nukem/blob/main/README.md\"\n        exit 1\n      fi\n```\n\n\u003c/details\u003e\n\n## 📚 Summary\n\nThe TODO NUKEM specification is a lightweight convention applied to TODO comment messages. It offers straightforward guidelines for crafting feature-rich comments, facilitating the development of automated tools. Designed for rapid visual comprehension of tasks, this convention may enhances efficiency in coding.\n\n## 🧠 Anatomy\n\nThe comment message should be structured as follows:\n\n### 📝 Code\n\n**In source code:**\n\n```\n// TODO: [priority] [type] [context] \u003cdescription\u003e [optional meta]\n```\n\n**Visual display (with decorations):**\n\nThe extension decorates the keys with emojis in the editor, so you see:\n\n```\n// TODO: 🟩 ✨ 🛠️ \u003cdescription\u003e [optional meta]\n```\n\n\u003e **Note:** You can customize the display mode in `todonukem.json` (emoji, text, or emoji-text combination).\n\n## 🌟 Examples\n\n**In source code:**\n\n```\n// TODO: [low] [feature] [optimize] Gear up and get ready to \"Hail to the king, baby!\" as I kick some alien behind\n```\n\n```\n// TODO: [medium] [fix] [update] It's time to chew bubble gum and kick ass, and I'm all outta gum\n```\n\n**Visual display (with decorations):**\n\n```\n// TODO: 🟩 ✨ 🛠️ Gear up and get ready to \"Hail to the king, baby!\" as I kick some alien behind\n```\n\n```\n// TODO: 🔶 🐛 🔄️ It's time to chew bubble gum and kick ass, and I'm all outta gum\n```\n\n## Required classification Blocks\n\n### 1: Prio\n\nThis block is used to indicate the priority of a task. It uses three different emojis to represent low (🟩), medium (🔶), and high (🔴) priority levels.\n\nInstead of using the same shape like `🟩 🟨 🟥`, we pick `🟩 🔶 🔴` with different shapes so that the distinctions are not solely based on the colors red and green, especially considering color blindness.\n\n| Emoji | Key         | Desc    |\n| ----- | ----------- | ------- |\n| 🟩    | `[low]`     | Default |\n| 🔶    | `[medium]`  |         |\n| 🔴    | `[high]`    |         |\n\n### 2: Type\n\nThis block is used to specify the type of task. It uses two emojis to represent a feature (✨) and a fix (🐛).\n\n| Emoji | Key         | Desc    |\n| ----- | ----------- | ------- |\n| ✨    | `[feature]` | Default |\n| 🐛    | `[fix]`     |         |\n\n### 3: Context\n\nThis block is used to provide context for the task. It uses a variety of emojis to represent different contexts such as design (🎨), documentation (📝), testing (🧪), performance (🚀), language (🌐), security (🛡), update (🔄), optimization (🛠), and review (👀).\n\n| Emoji | Key          |\n| ----- | ------------ |\n| 🎨    | `[design]`   |\n| 📝    | `[doc]`      |\n| 🧪    | `[test]`     |\n| 🚀    | `[perf]`     |\n| 🌐    | `[lang]`     |\n| 🛡     | `[sec]`      |\n| 🔄    | `[update]`   |\n| 🛠     | `[optimize]` |\n| 👀    | `[review]`   |\n\n## Optional Meta Blocks\n\nWe are in an early testing phase so this block is still incomplete.\n\nWe are happy to receive feedback on this.\n\n| Type                | Example       | Desc                                                                                                          |\n|---------------------|---------------|---------------------------------------------------------------------------------------------------------------|\n| To Be Discussed (TBD) | `[tbd]`      | This block is used when a task needs further discussion. It is represented by the 💬 emoji.                   |\n| Scope               | `[scope: ThisComponent]` | This block is used to specify the scope of a task. It is represented by the 🎯 emoji.                         |\n| Ticket              | `[ticket: TDN-123]` | This block is used to link a task to a specific ticket. It is represented by the 🎫 emoji. |\n| Until               | `[until: 2025-Q1]`  | This block is used to specify a deadline for a task. It is represented by the 📅 emoji.                       |\n| Assignee            | `[assignee: Name]` | This block is used to assign a task to a specific person. It is represented by the 👤 emoji. |\n| Author              | `[author: Name]`   | This block is used to indicate the author of a task. It is represented by the ✍️ emoji.     |\n| Version             | `[version: v1]`       | This block is used to specify the version of a task. It is represented by the 🔖 emoji.                       |\n| Docs                | `[docs]`     | This block is used to indicate that a task is related to documentation. It is represented by the 📚 emoji.    |\n| Block-Commit     | `[block-commit]` | This block is used to prevent a commit if this Block is set. It is represented by the ⛔ emoji. This only works with additional configuration for Git hooks tools and does not work out of the box.   |\n\n## Some Elements missing?\n\nAre you missing an important emoji? Then take a look at the Contribution Guidelines and create a new issue or pull request.\n\n```\n| 📦    | Context.Package  | Package |\n```\n\ne.g.\n\n```\n| ⬛    | Prio.Unknown | Unknown |\n```\n\n## ✨Features\n\nWhy Use this Comment Convention\n\n- quick visual capture of the task\n- Later possible filtering of tasks by areas\n- Meta information\n\n### 🎬 Demo\n\n#### Generate Comment\n\n![generate-demo.gif](resources/gif/generate-demo.gif)\n\n#### Filtering\n\n_The following is just a demo of what filtering could look like functionally in the future:_\n\nYou see here an old state of the prio emojis.\n\n![filtering-demo.gif](resources/gif/filtering-demo.gif)\n\n## ❓FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003eWhy do you use the choice between bug and feature as the second information in the classification block and not simply TODO and FIXME?\u003c/summary\u003e\n\u003cp\u003eThe developers surveyed so far said they rarely use FIXME. We have therefore currently decided to have the most comprehensive convention possible. In the future, we plan to make this adjustable per project. Therefore, this is only the default case.\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eWhat is the difference between the review and the TBD emoji?\u003c/summary\u003e\n\u003cp\u003eReview is when the category is not yet available. TBD is more likely to be additional when the category is already clear. But this may change in the future version.\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow did you choose the emojis?\u003c/summary\u003e\n\u003cp\u003eWe compared many emojis and ensured that they were similar in size. These were then shown to a few developers to make a general selection.\nFor example, the green and red emoji are not ideal for people with red/green weakness. We are therefore already working on a setting option at project level. Here you could then choose between emoji-only, text-only and or text-emoji combination for each project. But this is an option for the future.\u003c/p\u003e\n\u003c/details\u003e\n\nFor more questions and answers, please visit our [Q\u0026A Discussions](https://github.com/jolution/todo-nukem/discussions/categories/q-a).\n\n## 📃 Specification\n\nThe specification builds on existing TODO messages.\n\n**In source code format:**\n\nAfter the \"TODO:\" there is a space and then the first classification block.\n\nThe classification block contains exactly 3 keys in square brackets: `[priority] [type] [context]`. These are separated from each other by a space.\n\nThis is followed by the message as usual.\n\nThe meta block follows the message. This is optional.\nHere a unit of the block begins with square brackets. Within the square brackets you start with the appropriate key (e.g., `[ticket: ...]`, `[until: ...]`, etc.). A space is placed after the closed bracket if another unit follows. Of course, there doesn't have to be a space at the end.\n\n**Visual display:**\n\nThe VSCode extension and other tools can decorate the keys with emojis for better visual comprehension while keeping the source code clean and readable.\n\nThe language is English. This also applies to the date or quarter format.\n\n## 🗺️ Roadmap\n\n- Surveys and data are currently being collected\n- Add integrations (linter, generator, report ...)\n- Testing and feedback\n\n### 🌱 Possible future adaptation\n\n#### Guards\n\nFor those who want to use this convention only in dev branches and not in main/production, we are planning to build guards that prevent comments from being merged into main.\ne.g. like GitHub(...) actions or git hooks.\n\n#### Text only, and text-emoji combination variant\n\nA `text only`, and `text-emoji` combination variant is available via the `todonukem.json` configuration file as an alternative to the `emoji only` mode (default).\n\nDisplay modes:\n\n- **Emoji only** (default): `🟩 ✨ 🧪`\n- **Text only**: `Low Feature Test`\n- **Emoji-text combination**: `🟩-low ✨-feature 🧪-test`\n\nConfigure via `todonukem.json`:\n\n```json\n{\n  \"displayMode\": \"emoji-text\"\n}\n```\n\n#### Project configuration\n\nThe plan is for this to depend on the project configuration in the project configuration file, for example it could be called todonukem.json or commentsconvention.json (with or without trailing dot for the filename) for a general naming. But that's just an idea so far and not part of this version.\n\n#### User configuration\n\nAt some point, it would also be great if, as discussed in step 2, we could have not only a project-level config but also a user-level config that can override the default and project config. For example, if a user prefers a different config than the rest, we could use text-only as a basis by default, and then through our future extensions, provide a different visual variant without changing the code.\n\n## ❤️ Support\n\nIf you find this project helpful, please consider giving it a star on [GitHub](https://github.com/jolution/todo-nukem).\n\n[![Star this repository](https://img.shields.io/github/stars/jolution/todo-nukem?style=social)](https://github.com/jolution/todo-nukem)\n\nWe do not currently offer direct support for this project.\n\n## ✍️ Authors (in alphabetical order)\n\n- [@juliankasimir](https://www.github.com/juliankasimir)\n- [@pimmok](https://www.github.com/pimmok)\n\n## 💎 Sponsor\n\n### Atos\n\nWe appreciate the support from [Atos](https://atos.net), helping us continue our open source work.\n\n## ⚖️ License\n\nSee the [LICENSE](LICENSE) file for details.\n\n## ℹ️ Disclaimer\n\nPlease note that this project, TODO NUKEM, is not officially associated with or endorsed by the Duke Nukem franchise or its creators. It is an independent project developed by the open-source community and does not claim any rights to the Duke Nukem trademark or any related materials.\n\n## ✨ Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://jochensimon.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/17846993?v=4?s=100\" width=\"100px;\" alt=\"Jochen Simon\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJochen Simon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-pimmok\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#design-pimmok\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"https://github.com/jolution/todo-nukem/commits?author=pimmok\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/juliankasimir\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/120172350?v=4?s=100\" width=\"100px;\" alt=\"Julian Kasimir\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJulian Kasimir\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-juliankasimir\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#design-juliankasimir\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"https://github.com/jolution/todo-nukem/commits?author=juliankasimir\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/noahimwind\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/83748530?v=4?s=100\" width=\"100px;\" alt=\"Noah Duerkes\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNoah Duerkes\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/jolution/todo-nukem/pulls?q=is%3Apr+reviewed-by%3Anoahimwind\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","funding_links":["https://github.com/sponsors/jolution","https://github.com/sponsors/juliankasimir"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjolution%2Ftodo-nukem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjolution%2Ftodo-nukem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjolution%2Ftodo-nukem/lists"}