Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/trend-radar-daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,8 @@ jobs:
data/raw/github/${{ steps.options.outputs.target_date }}.enrichment.json
data/raw/github-stars/${{ steps.options.outputs.target_date }}.json
data/raw/github-stars/tracked-repos.json
data/external-discovery/${{ steps.options.outputs.target_date }}.aggregate.json
data/external-discovery/latest.aggregate.json
data/kb/latest.json
if-no-files-found: warn

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/trend-radar-weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,6 @@ jobs:
data/reports/${{ steps.options.outputs.target_date }}.weekly.json
data/reports/${{ steps.options.outputs.target_date }}.weekly.md
data/reports/${{ steps.options.outputs.target_date }}.weekly.audit.json
data/external-discovery/*.aggregate.json
data/kb/latest.json
if-no-files-found: warn
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,10 @@ data/agent-memory/**
!data/agent-memory/.gitkeep
data/upstream/**
!data/upstream/.gitkeep
data/raw/external-discovery/**
!data/raw/external-discovery/
!data/raw/external-discovery/fixtures/
!data/raw/external-discovery/fixtures/**
data/external-discovery/*.candidate-explanations.json

.worktrees/
6 changes: 5 additions & 1 deletion README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,11 @@ AgentRadar connects those steps into one workflow and stores the results as insp

The repository includes a lightweight local read-only web console for browsing generated artifacts.

### 6. Hosted online app
### 6. AgentReach external discovery boundary

The open-source edition only consumes local AgentReach JSON artifacts. It does not include platform login, account state, cookies, sessions, OAuth, or private provider diagnostics. `data/raw/external-discovery/` is local-only input by default; only public-safe `data/external-discovery/*.aggregate.json` files may be committed.

### 7. Hosted online app

- Hosted URL: [`https://app.agentradar.top/`](https://app.agentradar.top/)
- Browse the homepage, project library, weekly trends, run health, and emerging-project views directly
Expand Down
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,11 @@ AgentRadar 把这些步骤连成一套完整工作流,并把结果沉淀成每

仓库内开源版自带一个轻量本地 Web Console,用来浏览已生成产物。

### 6. 在线托管版本
### 6. AgentReach 外部发现边界

开源版只消费本地 AgentReach JSON artifact,不内置平台登录、账号态、cookie、session、OAuth 或私有 provider diagnostics。`data/raw/external-discovery/` 默认只作为本地输入目录;可公开提交的是通过脱敏校验的 `data/external-discovery/*.aggregate.json`。

### 7. 在线托管版本

- 在线地址:[`https://app.agentradar.top/`](https://app.agentradar.top/)
- 可直接查看首页、项目库、本周趋势、数据状态和新兴潜力项目
Expand Down
13 changes: 13 additions & 0 deletions data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,28 @@ This repository intentionally commits public historical artifacts under `data/`.
- `data/scores/`
- `data/reports/`
- `data/kb/`
- `data/external-discovery/*.aggregate.json`

These files are part of the project deliverable. They let readers inspect historical runs, compare scoring behavior over time, and review the generated reports without reproducing every upstream fetch.

## What is not version-controlled

- `data/upstream/`
- `data/raw/external-discovery/`
- `data/external-discovery/*.candidate-explanations.json`

`data/upstream/` is reserved for optional local scratch checkouts or caches, such as an explicit self-hosted `agents-radar` mirror. It is ignored by Git and is not part of the public artifact history.

`data/raw/external-discovery/` is local-only AgentReach provider input. It may contain imported platform references or private runner context and must not be committed or uploaded by default. Only sanitized fixtures under `data/raw/external-discovery/fixtures/` may be version-controlled.

Public external discovery history belongs in `data/external-discovery/*.aggregate.json`. These aggregates must be public-safe: no raw social text, no profile URLs, no raw handles, no cookie/session/token/OAuth material, and no public `*.events.jsonl` default artifact.

`data/external-discovery/*.candidate-explanations.json` is a cached display-only AgentReach explanation artifact. Local real-run files are ignored by default; only sanitized fixtures used by tests should be committed.

`data/external-discovery/windows/*.discussion-trend-window.json` is the derived AgentReach external discussion trend window. It is public-safe by contract and is generated from sanitized daily aggregates, not from raw provider input. It must not contain raw social text, profile URLs, raw handles, cookies, sessions, OAuth material, private runner diagnostics, or platform tokens.

Local real-run trend window artifacts should be reviewed before committing. The source raw input under `data/raw/external-discovery/` remains local-only even when the derived window is safe to inspect.

## Automation behavior

The daily and weekly GitHub Actions workflows update the tracked public artifacts and commit them back into this repository. This is intentional: the repo is both code and a public historical data log
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"skill_path": "docs/specs/agent-work/CodeImplementation_Skill.md",
"skill_sha256": "a15bb25d65ff2b12867a3255812d109d0821d6838a89b232392cbfaa70b7a95d",
"exec_plan_path": "docs/specs/exec-plans/agent-reach-external-discovery-and-evidence-v0.1.exec-plan.md",
"exec_plan_sha256": "e539dadd9aa4f55c5cf29cc0fc6e15a310e126b7a4ae7a13747d1aed1636a4ca",
"generated_at": "2026-06-30T04:31:29.714Z",
"acknowledged": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"skill_path": "docs/specs/agent-work/CodeImplementation_Skill.md",
"skill_sha256": "a15bb25d65ff2b12867a3255812d109d0821d6838a89b232392cbfaa70b7a95d",
"exec_plan_path": "docs/specs/exec-plans/agentreach-external-discussion-trend-window-v0.1.exec-plan.md",
"exec_plan_sha256": "16853f2fe8bb0e5be97cde0794c7f898ed0e3a401eec82d84bb82446d1a42af7",
"generated_at": "2026-07-03T13:04:21.289Z",
"acknowledged": true
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

## 文档状态

- 状态:`Draft for Review`
- 状态:`Approved for ExecPlan`
- 批准备注:`2026-06-30 design review 通过;需求文档已冻结 V1 平台、按日/7 日窗口、头部人群机构/团队/个人三类主体、次级信号边界和降级语义。本文已冻结 AgentReach 本地 artifact 消费、public-safe aggregate、entity registry tier、named_registry_actors 具名讨论者契约、daily / weekly / verify 消费边界,可进入 ExecPlan。`
- 对应需求:`docs/specs/product-specs/外部发现与补证信号层需求分析.md`
- 需求状态:`Frozen for Design`
- 设计范围:外部发现与补证信号层,即 `external discovery & evidence layer`
Expand Down Expand Up @@ -357,13 +358,25 @@ interface ExternalSignalEvent {
`ExternalEvidence` 是给项目级或方向级消费的外部证据摘要。该模型只表达外部讨论与补证信号,不等同于 `ScoreComponent.evidence`、`WeeklyEvidenceProject` 或项目成熟度事实。

```ts
interface ExternalNamedRegistryActor {
entity_id: string;
display_name: string;
actor_type: "institution" | "team" | "person";
registry_tier: ExternalRegistryTier;
event_count: number;
platforms: ExternalPlatform[];
first_seen_at: string;
last_seen_at: string;
}

interface ExternalEvidence {
evidence_id: string;
event_ids: string[];
scope: "project" | "direction";
target_key: string;
derived_signal_kinds: ExternalSignalKind[];
platforms: ExternalPlatform[];
named_registry_actors: ExternalNamedRegistryActor[];
actor_tiers: Partial<Record<ExternalActorTier, number>>;
actor_types: Partial<Record<ExternalActorType, number>>;
mention_count: number;
Expand All @@ -381,6 +394,15 @@ interface ExternalEvidence {

`actor_tiers` 必须按事件 actor 的 `effective_tier` 聚合,不能按 `provider_tier_hint` 聚合。若 registry 未命中,作者只能计入 `ordinary` 或 `unknown`。

`named_registry_actors` 是 UI 展示“谁在讨论”的唯一具名数据入口。该字段只能由满足以下条件的事件聚合生成:

- 事件 actor 存在 `registry_entity_id`、`registry_tier`,且 `tier_basis=registry`。
- `display_name` 来自 entity registry 或等价 public-safe canonical entity,不得直接复制 provider 原始 `actor.display_name`。
- 字段内不得包含 handle、profile URL、raw social text 或私有 diagnostics。
- 未命中 registry 的 actor 不得进入该列表,只能进入 `actor_tiers` / `actor_types` / `distinct_actor_count` 等匿名统计。

消费层展示时应优先使用 `named_registry_actors` 渲染 `具名讨论者`;当该列表为空时,只展示 `actor_tiers`、`actor_types` 和 `distinct_actor_count` 形成的匿名摘要。

### 4.3 `ObservationCandidate`

`ObservationCandidate` 是外部层可以生成但不能直接升级为主结论的观察对象。
Expand Down Expand Up @@ -1011,7 +1033,7 @@ data/external-discovery/entities/ # entity registry 或 tier registry,若拆
- 不改变现有主 score 公式。
- 不新增未同步 spec / config / tests 的 score component。
- 不让 LLM 直接决定外部层是否构成主趋势。
- 不创建或更新 exec-plan,直到设计获得明确批准
- 未获新的设计批准前,不创建或更新超出本文冻结范围的 exec-plan。

## 18. 设计自检清单

Expand Down
Loading
Loading