Skip to content

kabeep/annualize

Repository files navigation

Annualized

基于 git commit 为年终述职诞生的 Node.js CLI, 生成 Markdown

nodejs Version License

English | 简体中文

📖 简介

Annualized 不止可以总结项目的提交树,它更专注于个人贡献。


在我入职某公司的第一个年终,我反复思考我做、发现、解决了什么,以及下一步如何做,如何帮助公司和部门变得更好,帮助项目更进一步。 我想了很久,一个尚未发布经受市场考验的项目,增长、反馈都与我无缘,我能写什么? 我只能想到自己攻克了多少难点、解决了什么跨部门的问题、提高了同事多少效率、创造了多少价值、...。 我翻开几个项目的提交树,它们具体到没有意义,但我还是从整体细节中总结出这一年的路线图,于是 Annualize 诞生了。

它解决哪些痛点:

  • 可选农历区间作为一年的开始与结束
  • 可控时间范围
  • 提取某人的提交日志
  • 生成 AI 可用的 Markdown
  • 根据类型分类清单和统计数量

声明:作者对控制型管理模式没有好感,尤其是互联网企业,希望我们不总是身不由己。

查看 Markdown 示例,或者图片预览:

default_example

⚙️ 安装

  1. 克隆仓库
git clone https://github.com/kabeep/annualize.git
  1. 安装依赖
cd annualize

# 使用 npm 安装
npm install

# 或者使用 yarn 安装
yarn

# 亦或使用 pnpm 安装
pnpm install
yarn
  1. 编译程序
npm run build
  1. 通过软链接到全局
npm link
  1. 测试安装成功
annualize -v

🚀 使用

下面是一个常见工作流:

Usage

annualize <command> [options]

命令:
  annualize add     将当前目录添加至队列
  annualize remove  将当前工作目录从队列中移除                        [aliases: rm]
  annualize clear   清空队列                                      [aliases: clr]
  annualize print   将队列输出为 markdown 文件                     [aliases: ptr]
  annualize show    显示队列中的日志列表

选项:
      --author       为 `auto` 时从 git global config 中查找,默认全部输出日志
                                                                       [字符串]
      --since        从某日开始输出,默认为 `2023-01-01`                    [字符串]
      --before       输出到某日结束,默认为 `2024-01-01`                    [字符串]
      --lunar        使用农历作为年终总结的区间                               [布尔]
      --output       print 输出目录,相对于当前工作目录,默认 `User/Downloads`
                                                                       [字符串]
      --append-type  自定义提交类型                                         [数组]
  -o, --overwrite    add 覆写授权,当前工作目录已存在时进行覆写操作
                                                          [布尔] [默认值: false]
  -p, --pretty       print 美化标题,使用 emoji 美化 Markdown 标题
                                                          [布尔] [默认值: false]
  -h, --help         显示帮助信息                                          [布尔]
  -v, --version      显示版本号                                           [布尔]

示例:
  annualize add -o                          授权 add 命令当前工作目录的日志已在
                                            队列中时进行覆写
  annualize add --author=kabeep             仅将作者 kabeep 的日志添加到队列
  annualize add --since=2023-01-01          将 2023-01-01 到 2024-01-01
  --before=2024-01-01                       的日志添加到队列
  annualize print -p                        Markdown 标题将输出 `# {emoji}
                                            {commit-type}`

🎯 路线图

暂无分发计划, 如果某人迫切需要某些功能可以发邮件到我的公开邮箱

如果通过 Roadmap 获得了灵感, 这个仓库使用 MIT License, 我会很高兴并且充满感激的看到它被实现

  • 饼图 - 表示 commit types 占比
  • 重构 markdown generator
  • 关键词 - TF-IDE (需求: glance) needs collapse fancy
  • 变更文件日志 - 图表数据支持
  • 树形图 - 占比 (base on 文件日志改动)
  • 甘特图 - 计划任务记录 (需求: 敏捷开发管理与分析)
  • 数据包图 - 精细任务记录
  • XY 图 - 多维度增长趋势
  • 用户旅程图 - (需求: 洞察团队短板和协作模式)
  • 思维导图 - (需求: 发现贡献最大的提交, 如引用更多的 component, utils 等) need 变更文件日志
  • 思考倒排索引的局限
  • LLM - (需求: 单行分析 总结 图表数据支持)
  • 象限图 - (需求: 遵守要事第一的四象限法则, 找出最关键的任务或最关键的人) needs LLM
  • 时间线 - 总结全年 changelog needs LLM
  • 看板 - 分析迭代集合 needs LLM
  • 桑基图 - 多维度探索
  • a11y - 图表无障碍
  • SVG - 更丰富的统计报表 need Graphviz, LLM
  • MCP
  • 文件链接 - 访问变更文件
  • 拆分文件
  • Web - 生成 HTML need 拆分文件, marked / remark
  • Web 服务 - 在线预览
  • diff - 查看代码变更行
  • 在线仓库 - 直接处理在线仓库
  • GitGraph 图 - 合并变更 (需求: gitflow 看流向, thunk-based 看 hotfix) low priority

提前道歉产品规划有点像微观管理了, 但它的初衷是为面向每个个体做自我分析的

终极目标是像 packagephobiabundlephobiapkg-sizenpmgraphinit-commitnpmtrendsnpmchartscodacysnyk、 和我自己的 npmskim(WIP) 这些仓库一样成为调研工作流的一部分, 为洞察提供有力支持。

🤝 贡献

欢迎通过 Pull Requests 或 Issues 来贡献你的想法和代码。

📄 许可

本项目采用 MIT 许可证。详情请见 LICENSE 文件。

About

📑 Node.js CLI based on git commit for annual contribute index, generates Markdown

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published