返回顶部
s

sf-civic-digest旧金山政务摘要

Track San Francisco city government activity — Board of Supervisors, Land Use committee, Public Safety committee, SFMTA Engineering Public Hearings, SF Planning Commission, Historic Preservation Commission, Zoning Administrator hearings, Planning project notices, and SF.gov district events. Fetches agendas and recaps from SF Legistar, sfmta.com, sfplanning.org, the sf.gov Wagtail CMS API (api.sf.gov), and Socrata open data via curl-based scraping. Filtered by supervisorial district, neighborhood

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
95
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

sf-civic-digest

SF Civic Digest — SKILL.md

冷启动说明: 本文件设计为自包含。仅阅读 SKILL.md 的代理应能运行报告、生成摘要并理解完整的数据栈。无需其他上下文。


快速开始

bash

步骤 1:找到此技能的 scripts/ 目录的绝对路径


(它始终是此 SKILL.md 文件的同级目录)


SKILL_DIR=/absolute/path/to/sf-civic-digest

步骤 2:使用该绝对路径运行脚本(--district N 为必填项)

python3 $SKILLDIR/scripts/sfweekly_digest.py --district 5 --json

步骤 3:将 JSON 输出综合为叙述性报告(参见 STYLE.md)

注意: sfweeklydigest.py 会依次进行约 22 次网络调用,可能需要 2-3 分钟。如需快速测试,请先尝试单个脚本:python3 $SKILLDIR/scripts/sfjournalism.py --district 5 --days 7 --json

选区: 向任何脚本传递 --district N(1-11)。用户偏好和社区上下文位于 USER.md 中——在撰写报告前请先阅读。没有 civicconfig.json 或 civicconfig.example.json;这些文件已被移除。

⚠️ 路径规则——对任何代理(任何代理、IDE 或人类)至关重要:

  • - 所有脚本必须使用 scripts/ 目录的绝对路径 运行
  • 查找方法:scripts/ 始终是此 SKILL.md 文件的同级目录
  • 示例:如果 SKILL.md 位于 /home/alice/.openclaw/workspace/skills/sf-civic-digest/SKILL.md,则脚本位于 /home/alice/.openclaw/workspace/skills/sf-civic-digest/scripts/
  • 切勿使用像 scripts/foo.py 这样的裸相对路径——当工作目录不是技能根目录时,它们会失效
  • 如有疑问:在任何脚本路径上使用 realpath 即可获得绝对路径



架构

脚本是数据管道。代理负责撰写叙述。

脚本负责获取、解析、去重并输出 JSON。代理(你)读取该 JSON,并按照风格指南将其综合为报告。没有自动生成的报告——编辑判断由你负责。

sfweeklydigest.py --json
└── 调用所有子脚本 → 返回合并后的 JSON


代理读取 JSON + STYLE.md


代理撰写叙述性报告

关于报告生成,请参见下面的报告生成部分。



所有脚本

规范脚本位置: skills/sf-civic-digest/scripts/

脚本功能方法备注
sfweeklydigest.py主聚合器——调用所有子脚本使用 --json 获取机器可读输出;传递给代理进行综合
sfcivicdigest.py
通过 Legistar 获取监事会及所有委员会信息 | curl | --daily 仅获取增量;--days N;状态保存在 sfcivicstate.json 中 |
| sfmta_hearings.py | SFMTA 工程公开听证会 | curl + PDF | 街道变更、停车咪表、信号灯。大约每 2 周一次。 |
| sfplanningnotices.py | SF 规划项目通知(第 311 条) | curl | 最早信号层——在委员会听证会之前。需要 Accept: text/html 标头。 |
| sfplanningcommission.py | 规划委员会、HPC、ZA 完整议程 | curl + PDF | 服务器端渲染的 HTML(无需浏览器)。--body hpc 用于 HPC,--body za 用于 ZA。 |
| sfboardof_appeals.py | 上诉委员会 | Wagtail API | sf.gov CMS API(api.sf.gov)。每月第一和第三个星期三下午 5 点。无需浏览器。 |
| sfbuildingpermits.py | 全市建筑许可证 | Socrata REST | 每个提交的许可证。分类为 HIGH/NOTABLE/noise。状态跟踪。 |
| sfgov_events.py | 监督员办公时间、选区活动 | REST/JSON | 非常稀疏——仅限监督员活动。信号弱。 |
| sf_311.py | 按选区划分的 311 服务请求 | Socrata REST | 峰值检测。查询两个 7 天窗口以进行趋势比较。 |
| sf_ethics.py | 游说者联系信息 + 竞选捐款 | RSS + Socrata | 联系信息:5f5n-tdbf。捐款:e6py-fg8b。列名没有下划线。 |
| sfrentboard.py | 租金委员会会议 | Wagtail API | sf.gov CMS API(api.sf.gov)。无需浏览器。租金上涨:链接到 sf.gov(无硬编码值)。 |
| sfsfmtaboard.py | SFMTA 董事会 | curl | 每月第一和第三个星期二下午 1 点。服务变更、票价决策、自行车/行人安全。 |
| sfrecpark.py | 娱乐与公园委员会 | curl(Granicus) | view_id=91。sfrecpark.org 从服务器无法访问——仅限 Granicus。 |
| sfhousingpipeline.py | AB 2011 / SB 35 / 密度奖励住房管道 | Socrata REST | 交叉引用选区的地块数据集。观察列表跟踪 400 Divisadero。状态跟踪。 |
| sfjournalism.py | 新闻聚合器——5 个 SF 媒体 | RSS | Mission Local、Streetsblog SF、SF YIMBY、48 Hills、SF Standard。SF Examiner 返回 404。存档:sfjournalism_archive.json。 |
| sfvolunteercleanups.py | 社区清洁活动 | curl/JS bundle | Refuse Refuse SF + DPW Love Our City NBDs。GoDaddy SPA——数据在 JS bundle 中,不在 HTML 中。 |
| sfbartboard.py | BART 董事会 + 咨询机构 | Legistar API | webapi.legistar.com/v1/bart/Events。董事会 = HIGH,咨询 = MEDIUM。--next 用于下一次会议。 |
| sfsfusdboard.py | SFUSD 教育委员会会议 | Google Sheets + BoardDocs | 每月第二和第四个星期二下午 5 点。如果来源不可用,则回退到预计时间表。 |
| sf_evictions.py | 按选区划分的驱逐通知 | Socrata REST | 数据集 5cei-gny5。Ellis Act + OMI = 流离失所信号。趋势比较(两个窗口)。--district N。 |
| sf_sfcta.py | SF 县交通管理局 | curl(sfcta.org) | 拥堵收费、Muni Forward、自行车/行人资金、Prop L 销售税。董事会 + CAC + 委员会。 |
| sfcivicactions.py | 抗议、集会、公民行动 | Mobilize.us API + Indybay | 无需认证。集会/游行 = HIGH,拉票/电话银行 = MEDIUM。--type rally 进行筛选。 |
| sfmissionlocal.py | 仅 Mission Local 新闻 | RSS | sfjournalism.py 的子集。如需多源,请使用 sfjournalism.py。 |
| config_loader.py | 选区配置加载器 | — | 所有 11 个选区已预填充。向任何脚本传递 --district N。 |

无需浏览器

所有脚本现在无需浏览器即可运行。sfboardofappeals.py 和 sfrentboard.py 使用 sf.gov Wagtail CMS API(api.sf.gov/api/v2/pages/)。sfplanning_commission.py 使用 curl 针对服务器端渲染的 Drupal HTML(sfplanning.org 日历页面不依赖 JS,尽管最初假设相反)。

选区配置

所有脚本接受 --district N(1-11)。这是基本运行所需的全部内容。

用户偏好和社区上下文(街道、地址、需要标记的人员)位于 USER.md 中——这是一个人类可读的个人资料文件。没有 civic_config.json;该文件已被移除。在撰写任何报告之前,请阅读 USER.md 以了解用户关心什么。

选区→社区映射:references/sf-districts.md
建筑时间线基准:references/sf-build-timelines.md——在撰写任何住房项目之前请先阅读。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 sf-civic-digest-1775908871 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 sf-civic-digest-1775908871 技能

通过命令行安装

skillhub install sf-civic-digest-1775908871

下载

⬇ 下载 sf-civic-digest v1.0.0(免费)

文件大小: 147.91 KB | 发布时间: 2026-4-12 11:21

v1.0.0 最新 2026-4-12 11:21
sf-civic-digest 1.0.0 — Initial release

- Track San Francisco city government activity with scripts fetching agendas, recaps, and notices from official sources (Board of Supervisors, SFMTA, Planning, etc.).
- Supports querying by supervisorial district, neighborhood, streets, and topic keywords.
- Fetches and aggregates data from SF Legistar, sfmta.com, sfplanning.org, sf.gov CMS API, and Socrata open data.
- All scripts must be run using absolute paths; no browser or civic_config.json required.
- Outputs data as JSON for narrative synthesis; user preferences and context stored in USER.md.
- Designed for creating weekly or daily SF civic digests, tracking legislation, and monitoring local development and events.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部