Skip to content
Back to skills

Counsel Unit Legal Service Record

ASecurity

律师服务顾问单位法律服务工作记录的网页化工具,支持三种记录入口:(1) 网页手动记录;(2) 在 WorkBuddy 对话中由 AI 自动捕获并写入记录明细;(3) 用户明确指定把某段工作内容或某份资料归入某家单位(指令式归入,直接进入该单位专属分表)。采用"总表 + 多家单位各自独立分表"视图,且职责严格分离:总表仅列示各单位的服务对象名称与服务期限(律师服务合同约定的起止日期,不含任何工作明细),工作明细全部在各单位独立分表中记录与展示;可按单位新建/重命名/删除分表并维护服务期限,支持导出总表概览、单单位明细、或按单位拆分(总表概览+各单位明细)带页脚页码的 DOCX 报告或多工作表 Excel 报告。当用户要求"记录顾问单位工作""分单位记录""给XX公司建个分表""汇总本月顾问工作""按单位分别出报告""生成顾问单位工作报告""把XX归入XX公司""这份资料计入XX单位""把以下内容记到XX公司""归入某单位分表""导出 excel/docx"时使用。

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
toolspythonbash

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 10 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add CSlawyer1985/legal-skillhub --skill counsel-unit-legal-service-record --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Counsel Unit Legal Service Record?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Counsel Unit Legal Service Record
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cslawyer1985-counsel-unit-legal-service-record/badge)](https://www.skillsdirectory.com/skills/cslawyer1985-counsel-unit-legal-service-record)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: counsel-unit-legal-service-record
description: 律师服务顾问单位法律服务工作记录的网页化工具,支持三种记录入口:(1) 网页手动记录;(2) 在 WorkBuddy 对话中由 AI 自动捕获并写入记录明细;(3) 用户明确指定把某段工作内容或某份资料归入某家单位(指令式归入,直接进入该单位专属分表)。采用"总表 + 多家单位各自独立分表"视图,且职责严格分离:总表仅列示各单位的服务对象名称与服务期限(律师服务合同约定的起止日期,不含任何工作明细),工作明细全部在各单位独立分表中记录与展示;可按单位新建/重命名/删除分表并维护服务期限,支持导出总表概览、单单位明细、或按单位拆分(总表概览+各单位明细)带页脚页码的 DOCX 报告或多工作表 Excel 报告。当用户要求"记录顾问单位工作""分单位记录""给XX公司建个分表""汇总本月顾问工作""按单位分别出报告""生成顾问单位工作报告""把XX归入XX公司""这份资料计入XX单位""把以下内容记到XX公司""归入某单位分表""导出 excel/docx"时使用。
metadata:
  display_name: 顾问单位法律服务工作记录
  displayName: 顾问单位法律服务工作记录
  slug: counsel-unit-legal-service-record
  version: 1.0.0
  type: tool
---

# 顾问单位法律服务工作记录(网页版)

## 一、用途

为执业律师提供一套**本地网页工具**,用于系统记录其向法律顾问单位(常年/专项顾问)提供的各项法律服务,并可根据需要**定期汇总**生成正式报告。

记录字段(与需求一致,并补充两项便于实务管理的字段):

| 字段 | 说明 | 必填 |
|------|------|------|
| 序号 | 按日期升序自动生成 | 自动 |
| 日期 | 工作发生日期 | 是 |
| 顾问单位 | 服务对象的单位名称(可新建多个单位) | 是 |
| 律师工作内容 | 具体提供的法律服务事项 | 是 |
| 工作时间(小时) | 投入的计费/服务工时 | 否(未填默认 0) |
| 后续工作 | 待跟进事项 | 否 |
| 备注 | 其他说明 | 否 |
| 经办律师 | 实际承办律师(选填) | 否 |

**数据组织(总表与分表严格分离)**:本工具刻意将"总表"与"分表"职责分离——
- **总表**(视图选「全部单位(总表)」)仅登记各单位的**服务对象名称**与**服务期限**(即律师服务合同约定的开始日期、结束日期),**不承载任何工作明细或具体内容**;
- **工作明细**(上述日期 / 工作内容 / 工时等字段)全部归属到各家单位的**独立分表**中记录与展示。

> 服务期限存于 `data/records.json` 的 `unit_meta`(按单位名索引:`{"单位名": {"start_date": "YYYY-MM-DD", "end_date": "YYYY-MM-DD"}}`),可通过总表「编辑期限」或在「单位管理」新建/编辑单位时维护;重命名、删除单位时同步维护该键。

## 二、如何启用(启动本地服务)

本工具由「本地 HTTP 服务 + 网页前端」组成,数据保存在本机,不上传任何网络,符合保密要求。

在终端执行(已配置好的 Python 虚拟环境):

```bash
$HOME/.workbuddy/binaries/python/envs/default/bin/python \
  "$HOME/.workbuddy/skills/顾问单位法律服务工作记录/server.py"
```

服务默认监听 `http://127.0.0.1:8765/`。启动后,在浏览器打开该地址即可使用网页。
(如需更换端口,设置环境变量 `COUNSEL_LOG_PORT=9000` 后启动。)

> 提示:服务需保持运行才能使用网页。关闭终端或停止进程后网页不可用;数据文件 `data/records.json` 不会丢失。

## 三、网页功能

1. **新增记录**:点击右上角「+ 新增记录」,填写单位、日期、工作内容、工时、经办律师等,保存即写入本地数据。
2. **编辑 / 删除**:每行记录右侧「编辑」「删除」按钮。
3. **筛选查询**:按「顾问单位」「起始/结束日期」组合筛选,便于查看某单位或某期间的工作。
4. **统计概览**:页面自动展示当前筛选范围内的记录数、累计工时、涉及单位数、含后续工作项数。
5. **定期汇总导出**:
   - 选好期间后,点「导出 DOCX」生成 Word 报告(含**页脚页码**、标题、汇总统计与明细表);
   - 点「导出 Excel」生成表格报告(含表头样式、列宽、冻结前两行(大标题与表头)、合计行);
   - 「本月汇总」「本季度汇总」可一键设定期间,再导出即完成"定期汇总"。
6. **总表与分表分工(核心·已重构)**:工具采用「总表 + 多家单位各自独立分表」的视图结构,且二者职责严格区分——
   - **总表(顶部「全部单位(总表)」标签)**:仅列示各顾问单位的**服务对象名称**与**服务期限**(即律师服务合同约定的开始日期、结束日期),**不展示任何工作明细或具体内容**;每行提供「查看分表」「编辑期限」操作。
   - **分表(各家单位标签)**:点击某家单位标签进入其专属分表,记录并展示该单位的全部法律服务工作明细(日期、工作内容、工时、后续工作、备注、经办律师)。
   - 新增/编辑记录时填写的单位,会自动归入对应分表的标签。
   - **服务期限维护**:在总表点击某单位的「编辑期限」,或在「单位管理」新建单位时填写开始/结束日期,即写入该单位的服务期限(存于 `data/records.json` 的 `unit_meta`);重命名/删除单位时同步维护。
7. **单位分表管理**:点击「+ 单位管理」可
   - **新建单位分表**:输入单位名称,并可同时填写服务开始/结束日期(来自律师服务合同),即创建一张独立分表标签并写入服务期限;
   - **重命名单位分表**:同步重命名该单位名下所有记录的"顾问单位"字段及 `unit_meta` 键;
   - **编辑服务期限**:在单位管理列表或总表「编辑期限」中补填/修改开始、结束日期;
   - **删除单位分表**:提供两种安全模式——「仅移除单位标签(保留该单位全部工作记录,归入顶部「未分类单位」标签,并清除其 `unit_meta`)」或「连同该单位全部工作记录一起删除(不可恢复)」,删除前均二次确认。
   - **未分类单位(顶部「未分类单位」标签)**:收纳「删除单位后保留的记录」以及「新增时未指定归属单位的记录」(即 `unit` 不在任何单位分表中的记录)。可在该视图查看、编辑,并通过编辑记录重新指定其归属单位;带数字徽标提示当前未分类记录数。

## 四、报告格式说明

- **总表导出(在「全部单位(总表)」视图、未勾选拆分)**:生成「顾问单位一览(总表)」报告,仅含**序号 / 服务对象名称 / 服务开始日期(合同约定)/ 服务结束日期(合同约定)**,**不含任何工作明细**;**页脚自动插入"第 X 页 / 共 Y 页"页码**。与工作明细完全分离,符合"明细全部在分表"的要求。
- **单单位分表导出(停留在某家单位分表标签时直接导出)**:仅导出该单位的工作记录明细(DOCX/Excel 均不含单位列):序号/日期/律师工作内容/工作时间(小时)/后续工作/备注/经办律师,**页脚插入页码**。
- **分表导出(按单位拆分多张分表)**:在「全部单位(总表)」视图下勾选「按单位拆分多张分表」后导出,报告同时包含"总表概览"与"各单位明细":
  - DOCX:先列「一、顾问单位一览(总表)」(仅名称+服务期限),再列「二、各单位法律服务工作明细分表」,为每家单位单独成节(节标题含"单位(N 项,X 小时)",节内表格不含单位列),末页含统一页码;
  - Excel:生成多工作表工作簿,首张为「总表(单位一览)」(仅名称+期限),其后每家单位一张独立工作表(明细,不含单位列),各表均冻结前两行(大标题与表头)。
  - 若当前已停留在某家单位分表视图,则导出该单位单张分表明细(不拆分)。
- **Excel 报告样式**:含大标题、表头(深蓝填充)、数据斑马纹、合计行、列宽自适应、冻结前两行(大标题与表头)。

## 五、数据位置与保密

- 数据文件:`~/.workbuddy/skills/顾问单位法律服务工作记录/data/records.json`
- 该文件仅存于本机,请勿随意复制外发;如须交接或备份,请确认脱敏。
- 所有记录均属于律师工作秘密,未经授权不得对外提供(见用户保密规则)。

## 六、对话内记录(从 WorkBuddy 对话中归入)

本技能支持**在 WorkBuddy 对话内直接写入工作记录**,与网页共用同一份 `data/records.json`,网页中实时可见;写入的 `unit` 字段会自动归入对应的单位分表——若该单位此前没有分表,会自动新建单位标签,**无需额外操作**。对话内记录提供两种入口,可叠加使用:

- **入口一 · 自动捕获**(见第 1–5 节):律师表达"记录本次对话工作"等意图,由 AI 主动扫描本次/近期对话、识别工作事项并提炼成结构化条目。
- **入口二 · 用户指定归入**(见第 6 节):律师**明确指定**"把某段工作内容或某份资料归入某家单位",AI 严格按用户指定的单位和内容写入对应单位分表,不自行扫描或臆测其他对话事项。

### 1. 触发表述(出现以下任一即启用自动捕获)

- "记录本次顾问工作" / "把刚才的顾问工作记下来"
- "把今天/本周对话里给 XX 公司做的工作记一下"
- "记录本次对话里的法律服务工作" / "自动记录"
- 其他明显表达"将当前对话成果写入工作记录"的意图

### 2. AI 执行流程

1. **识别工作事项**:扫描本次/近期对话,提取属于"顾问单位法律服务"的事项(合同审查、文书起草、法律检索、案例检索、参会、咨询回复、出具法律意见、尽调、培训等)。忽略闲聊、内部思考与未实际开展的事项。
2. **提炼为结构化条目**:每条包含 单位 / 日期 / 工作内容 / 工时 / 后续工作 / 备注 / 经办律师。
3. **字段确认与缺省**(见下方规则)。对缺失或存疑的关键字段,按规则标注或先向律师确认,不臆测。
4. **调用 capture.py 写入**:以批量 JSON 方式调用脚本(见下方示例),脚本自动生成 ID、去重、写盘。
5. **反馈结果**:向律师回报写入条数、各条 ID,并提示可在网页查看与导出。

### 3. 字段提取与缺省规则

| 字段 | 来源 | 缺省/确认规则 |
|------|------|--------------|
| 顾问单位 | 对话中识别的服务对象 | 未明确或存在多单位时,**必须先向律师确认**,不得臆测 |
| 日期 | 工作发生日期 | 未明确时默认当日,并提示律师确认 |
| 律师工作内容 | 对话成果概括 | 忠于事实、简明扼要,不夸大、不遗漏关键事项 |
| 工作时间(小时) | 对话明确数 / 合理估算 | **对话无明确工时时,应估算并在备注标注"约"及估算依据,或先询问律师**;不得伪称精确 |
| 后续工作 | 对话中待办 | 据上下文合理归纳,无则留空 |
| 备注 | 说明 | 对话自动捕获时系统会自动写入来源标识(并在备注为空时标注"来源:对话自动捕获");手动记录可补充工时估算说明、关联事项 |
| 经办律师 | 对话指明 / 默认 | 默认"X律师"(占位提示,请用户自行填写实际承办律师),除非对话指明其他承办人 |

### 4. 调用示例(AI 在对话中以 Bash 执行)

```bash
$HOME/.workbuddy/binaries/python/envs/default/bin/python \
  "$HOME/.workbuddy/skills/顾问单位法律服务工作记录/capture.py" \
  --json '[{"unit":"浙江XX公司","date":"2026-08-19","content":"审查《品牌授权协议》并提出12处修改意见","hours":3,"followup":"待客户确认修订稿","remark":"来源:WorkBuddy对话自动捕获","lawyer":"X律师"},{"unit":"浙江XX公司","date":"2026-08-19","content":"参加股东会并就股权转让出具法律意见","hours":2,"followup":"补充尽调材料","remark":"来源:WorkBuddy对话自动捕获","lawyer":"X律师"}]'
```

- 单条也可用散参:`capture.py --unit "XX" --date 2026-08-19 --content "..." --hours 2 --followup "..." --lawyer "X律师"`
- `--dry-run` 可先预览校验、不写盘;`--no-dedup` 关闭去重。
- 脚本返回 JSON(added/skipped/total/items),AI 据以向律师汇报。

### 5. 注意事项

- **事实与推断区分**:工作内容与单位属"事实",须有对话依据;工时为"推断/估算"时必须标注,不得与事实混同。
- **去重保护**:相同 (单位+日期+工作内容) 已存在则自动跳过,避免 AI 重复触发导致重复记录。
- **保密**:记录属工作秘密,仅存本机,不得外发(同数据保密规则)。
- **不擅自改写关键信息**:写入的工作内容、日期、单位须与对话一致,不擅自调整金额、时间线等。

### 6. 用户指定归入(指令式记录入口)

与"自动捕获"由 AI 主动扫描不同,**用户指定归入**由律师主动下达指令:明确给出"归入哪家企业"以及"归入什么内容/资料",AI 按指令写入对应单位分表,不做范围外的事项推断。该入口专门用于落实用户诉求——"把 WorkBuddy 中的工作内容或资料,按我的要求归入某家单位工作记录(即进入该单位专属分表)"。

**触发表述**(出现以下任一即启用用户指定归入):

- "把这段工作归入 XX 公司" / "把以下内容记到 XX 单位"
- "这份资料(文件)计入 XX 公司" / "把这份合同审查意见归到 A 公司分表"
- "把 XX 归入 XX 单位工作记录" / "把刚才的成果计入 B 公司"
- 其他明显表达"按我的指定,把某内容/资料写入某单位分表"的意图

**与自动捕获的关键区别**:

| 维度 | 自动捕获 | 用户指定归入 |
|------|----------|--------------|
| 范围 | AI 扫描全对话,自行判断哪些该记 | 仅写入用户明确指定的内容/资料,不扩散 |
| 单位确定 | 多单位时需先向律师确认 | 单位由用户明确指定,AI 照写即可 |
| 适用场景 | 一段对话完成多项工作后总体留痕 | 用户想把某一段成果/某一份资料精确挂到某单位 |

**"资料"归入处理规则**(当用户要求归入的是一份资料/文件,如合同审查意见、法律备忘录、邮件往来、检索报告等):

1. **先读取资料**:若为用户上传/给出的文件路径,使用 Read 工具读取其文本或内容;若为对话中粘贴的长文本,直接引用,不另读文件。
2. **忠于资料、提炼要点**:依据资料概括出"律师工作内容",不得虚构资料中不存在的事项;资料较长时提炼关键法律服务事项(审查/起草/检索/咨询结论等),不必整篇照搬。
3. **标注资料来源**:在 `remark` 中标注资料名称与性质,例如 `资料:《XX公司股权代持协议审查意见》(2026-08-19 出具)`;来源标识 `source` 记为"资料归入"。
4. **保密**:资料属工作秘密,仅在本机读取并写入本地 `records.json`,不上传任何网络(同数据保密规则)。

**字段确认规则(用户指定归入)**:

| 字段 | 处理 |
|------|------|
| 顾问单位 | 必须来自用户明确指定;用户若只给了内容/资料而未指定单位,**必须先向律师确认单位**,绝不得自行归类 |
| 工作内容 | 以用户指定的内容/资料为准;AI 可协助提炼概括,但须忠于原意,不擅自增删关键事项 |
| 日期 | 用户指定则照填;未指定默认当日并提示律师确认 |
| 工时 | 用户未明确时,可据资料/工作性质合理估算并在备注标注"约"及依据,或先询问;不得伪称精确 |
| 后续工作 / 备注 / 经办律师 | 据上下文或用户补充填写,缺省与自动捕获一致(未填备注时默认"来源:用户指定归入") |

**调用示例(AI 在对话中以 Bash 执行)**:

资料归入示例(指定文件 + 指定单位):

```bash
$HOME/.workbuddy/binaries/python/envs/default/bin/python \
  "$HOME/.workbuddy/skills/顾问单位法律服务工作记录/capture.py" \
  --source "资料归入" \
  --unit "浙江XX公司" --date 2026-08-19 \
  --content "审查《品牌授权协议》并出具12处修改意见" --hours 3 \
  --followup "待客户确认修订稿" \
  --remark "资料:《XX公司品牌授权协议审查意见》(2026-08-19 出具)" \
  --lawyer "X律师"
```

纯文本指定归入示例(用户直接给内容 + 单位):

```bash
$HOME/.workbuddy/binaries/python/envs/default/bin/python \
  "$HOME/.workbuddy/skills/顾问单位法律服务工作记录/capture.py" \
  --source "用户指定归入" \
  --unit "浙江YY公司" --date 2026-08-19 \
  --content "就劳动用工合规出具书面法律意见" --hours 2 \
  --followup "补充员工手册修订" --lawyer "X律师"
```

- 批量亦可用 `--json`,每条可单独带 `source` 字段;不传 `--source` 时缺省为"对话自动捕获",与既有行为完全兼容。
- 单条散参、`--dry-run` 预览、`--no-dedup` 关闭去重等用法与自动捕获一致。

## 七、依赖

- Python 3.9+,依赖 `python-docx`、`openpyxl`(已安装于隔离虚拟环境 `envs/default`)。
- 如需重装:`envs/default/bin/pip install -r requirements.txt`

Files in this skill

  • SKILL.md17.5 KB
  • _meta.json126 B
  • capture.py9.9 KB
  • data/records.json54 B
  • report.py23 KB
  • requirements.txt35 B
  • server.py23.8 KB
  • web/app.js20.3 KB
  • web/index.html7.7 KB
  • web/styles.css8.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…