mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-11-02 13:06:13 +00:00
docs: gongfa - register input-state-transform-output framework (#240)
* docs: gongfa - add cross-domain framework source * docs: gongfa - register cross-domain input-state-transform-output framework
This commit is contained in:
@@ -94,11 +94,50 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
stream.write(text)
|
||||
return result
|
||||
|
||||
def test_user_requested_framework_and_input_output_tiers_are_separate_provisional_opinions(self):
|
||||
rows = catalog.merge_rows(deepcopy(self.documents))
|
||||
by_id = {(row['namespace'], row['original_id']): row for row in rows}
|
||||
framework = by_id['registry', 'gongfa-input-state-transform-output-cross-domain']
|
||||
input_output = by_id['registry', 'gongfa-input-state-transform-separation']
|
||||
state_classification = by_id['registry', 'gongfa-state-classification']
|
||||
|
||||
self.assertEqual(framework['grade_id'], 'tian-initial')
|
||||
self.assertEqual(framework['grading_status'], 'provisional')
|
||||
self.assertEqual(input_output['grade_id'], 'tian-intermediate')
|
||||
self.assertEqual(input_output['grading_status'], 'provisional')
|
||||
self.assertEqual(state_classification['grade_id'], 'xuan-intermediate')
|
||||
self.assertEqual(self.documents['registry']['assessments'], [])
|
||||
previous = next(batch for batch in self.documents['registry']['grade_proposals']
|
||||
if batch['id'] == 'gongfa-author-repo-expansion-20261007')
|
||||
successor = next(batch for batch in self.documents['registry']['grade_proposals']
|
||||
if batch['id'] == 'gongfa-user-input-state-transform-separation-tian-20261024')
|
||||
framework_batch = next(batch for batch in self.documents['registry']['grade_proposals']
|
||||
if batch['id'] == 'gongfa-user-cross-domain-framework-tian-20261024')
|
||||
self.assertEqual(successor['supersedes'], previous['id'])
|
||||
self.assertIsNone(framework_batch['supersedes'])
|
||||
previous_items = {(item['gongfa_id'], item['content_version']): item for item in previous['items']}
|
||||
successor_items = {(item['gongfa_id'], item['content_version']): item for item in successor['items']}
|
||||
framework_items = {(item['gongfa_id'], item['content_version']): item for item in framework_batch['items']}
|
||||
self.assertEqual(set(successor_items), set(previous_items))
|
||||
self.assertEqual(set(framework_items), {(framework['original_id'], 'r1')})
|
||||
for key, item in previous_items.items():
|
||||
if key[0] != 'gongfa-input-state-transform-separation':
|
||||
self.assertEqual(successor_items[key], item)
|
||||
self.assertEqual(previous_items['gongfa-input-state-transform-separation', 'r1']['grade_id'],
|
||||
'xuan-intermediate')
|
||||
self.assertEqual(successor_items['gongfa-input-state-transform-separation', 'r1']['grade_id'],
|
||||
'tian-intermediate')
|
||||
self.assertEqual(framework_items[framework['original_id'], 'r1']['grade_id'], 'tian-initial')
|
||||
self.assertIn('用户明确指定', framework['explanation_fields'][5]['content'])
|
||||
self.assertIn('天阶初级', framework['explanation_fields'][5]['content'])
|
||||
self.assertIn('用户明确指定', input_output['explanation_fields'][5]['content'])
|
||||
self.assertIn('天阶中级', input_output['explanation_fields'][5]['content'])
|
||||
|
||||
def test_current_all_classified_content_and_two_bad_summaries_keep_original_opinions(self):
|
||||
rows = catalog.merge_rows(deepcopy(self.documents))
|
||||
self.assertEqual(Counter(row['namespace'] for row in rows), {'registry': 411})
|
||||
self.assertEqual(len(rows), 411)
|
||||
self.assertEqual(len({(r['namespace'], r['original_id'], r['content_version']) for r in rows}), 411)
|
||||
self.assertEqual(Counter(row['namespace'] for row in rows), {'registry': 412})
|
||||
self.assertEqual(len(rows), 412)
|
||||
self.assertEqual(len({(r['namespace'], r['original_id'], r['content_version']) for r in rows}), 412)
|
||||
undetermined = {r['original_id'] for r in rows if r['grading_status'] == 'undetermined'}
|
||||
self.assertEqual(undetermined, {
|
||||
'gongfa-candidate-html211-e001-a663456869',
|
||||
@@ -114,7 +153,7 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
self.assertEqual(by_id['registry', 'gongfa-candidate-html211-e001-a663456869']['grading_status'], 'undetermined')
|
||||
self.assertIn('失去50%容量时剩余单位需要承担2倍总流量。',
|
||||
by_id['registry', 'gongfa-candidate-html211-e001-a663456869']['original_text'])
|
||||
self.assertEqual(sum(r['entry_status'] == '已登记' for r in rows), 411)
|
||||
self.assertEqual(sum(r['entry_status'] == '已登记' for r in rows), 412)
|
||||
lambda_index = next(index for index, row in enumerate(rows) if row['original_id'] == 'gongfa-lambda-calculus')
|
||||
glue_index = next(index for index, row in enumerate(rows) if row['original_id'] == 'gongfa-glue-coding')
|
||||
self.assertEqual(lambda_index + 1, glue_index)
|
||||
@@ -126,7 +165,7 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
self.assertEqual(chapters[chapters.index('## 拼好码') + 1], '## Lambda 演算')
|
||||
self.assertEqual(sum(r['entry_status'] == '登记库候选' for r in rows), 0)
|
||||
self.assertEqual(self.documents['registry']['assessments'], [])
|
||||
self.assertEqual(len(self.documents['registry']['gongfa']), 411)
|
||||
self.assertEqual(len(self.documents['registry']['gongfa']), 412)
|
||||
self.assertTrue(all(item['entry_status'] == 'registered' for item in self.documents['registry']['gongfa']))
|
||||
registry_item = next(item for item in self.documents['registry']['gongfa'] if item['id'] == 'gongfa-first-principles')
|
||||
profile = registry_item['content']['profile']
|
||||
@@ -181,12 +220,12 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
self.assertEqual(self.documents['html211_candidates']['registry_updated'], False)
|
||||
self.assertEqual(self.documents['html96_candidates']['registry_updated'], False)
|
||||
self.assertEqual(self.documents['explanations_v1']['template_sha256'], catalog.tool_explanations.template_sha256(ROOT))
|
||||
self.assertEqual(len(self.documents['explanations_v1']['items']), 411)
|
||||
self.assertEqual(len(self.documents['explanations_v1']['items']), 412)
|
||||
self.assertTrue(all(item['object_key'].startswith('registry:')
|
||||
for item in self.documents['explanations_v1']['items']))
|
||||
views = catalog.render_views(ROOT, rows, self.binding)
|
||||
markdown = views['README.md']
|
||||
self.assertIn('- 共**411条内容记录**;已登记411条,待登记0条,未登记来源条目0条。', markdown)
|
||||
self.assertIn('- 共**412条内容记录**;已登记412条,待登记0条,未登记来源条目0条。', markdown)
|
||||
self.assertNotIn('[控制论与科学方法论](#控制论与科学方法论)', markdown)
|
||||
self.assertIn('同名条目在导航中附稳定对象ID,不表示身份合并。', markdown)
|
||||
self.assertFalse('catalog.xlsx' in markdown, '活动阅读视图只有Markdown,历史Excel仅作原始载荷保存')
|
||||
@@ -475,8 +514,8 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
for phrase in phrases:
|
||||
self.assertNotIn(phrase, fields[field_name], f'{candidate_id}:{field_name}')
|
||||
|
||||
def test_stale_status_scan_covers_all_441_explanation_items_without_rewriting_them(self):
|
||||
expected_counts = {'gongfa': 411, 'faqi': 30}
|
||||
def test_stale_status_scan_covers_all_442_explanation_items_without_rewriting_them(self):
|
||||
expected_counts = {'gongfa': 412, 'faqi': 30}
|
||||
bundles = source_archive.bundles(ROOT)
|
||||
self.assertEqual(set(expected_counts), set(bundles))
|
||||
hits = []
|
||||
@@ -492,7 +531,7 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
for label in STALE_EXPLANATION_LABELS:
|
||||
if label in field['content']:
|
||||
hits.append(f"{kind}:{item['object_key']}:{field['name']}:{label}")
|
||||
self.assertEqual(441, total)
|
||||
self.assertEqual(442, total)
|
||||
self.assertEqual([], hits, '仅报告过时状态词候选,不自动改写说明:' + chr(10) + chr(10).join(hits))
|
||||
|
||||
def test_v1_template_appends_the_three_argument_fields_without_changing_v0(self):
|
||||
@@ -530,8 +569,8 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
findings.append(f"{item['object_key']}:{name}")
|
||||
self.assertEqual([], findings, '主张不能把同一摘要同时当作方法和问题:' + ', '.join(findings))
|
||||
|
||||
def test_active_v1_payload_migrates_all_441_records_with_toulmin_warrants(self):
|
||||
expected_counts = {'gongfa': 411, 'faqi': 30}
|
||||
def test_active_v1_payload_migrates_all_442_records_with_toulmin_warrants(self):
|
||||
expected_counts = {'gongfa': 412, 'faqi': 30}
|
||||
expected_names = v0_field_names() + ['结论', '连接规则', '依据']
|
||||
bundles = source_archive.bundles(ROOT)
|
||||
total = 0
|
||||
@@ -562,7 +601,7 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
self.assertNotIn('仅当第18项支持第11项机制适用于第9项问题', warrant, item['object_key'])
|
||||
self.assertIn('第7项', fields['依据'], item['object_key'])
|
||||
self.assertIn('第11项', fields['依据'], item['object_key'])
|
||||
self.assertEqual(441, total)
|
||||
self.assertEqual(442, total)
|
||||
gongfa_items = {
|
||||
item['object_key']: {field['name']: field['content'] for field in item['fields']}
|
||||
for item in bundles['gongfa']['data']['explanations_v1']['items']
|
||||
@@ -631,8 +670,8 @@ class CatalogMaintenanceTest(unittest.TestCase):
|
||||
documents['registry']['gongfa'].append(candidate)
|
||||
rows = catalog.merge_rows(documents)
|
||||
self.assertEqual(sum(row['entry_status'] == '登记库候选' for row in rows), 1)
|
||||
self.assertEqual(412, len(rows))
|
||||
self.assertIn('合计412条', '\n'.join(catalog.notes(rows, self.binding)))
|
||||
self.assertEqual(413, len(rows))
|
||||
self.assertIn('合计413条', '\n'.join(catalog.notes(rows, self.binding)))
|
||||
|
||||
def test_registry_updates_follow_explicit_correction_and_never_inherit_a_new_version(self):
|
||||
documents = deepcopy(self.documents)
|
||||
|
||||
Reference in New Issue
Block a user