feat: rename skills/skiff to pouch and move ACK state under .pouch

Use ~/.pouch, the pouch CLI, and .pouch.yaml as the SSOT container.
Keep the inner skills/ packages, and store ACK project state in
.pouch/ack instead of docs/ack.
This commit is contained in:
2026-08-25 15:20:02 +08:00
parent ee31278947
commit f3cd56b78e
83 changed files with 1265 additions and 1192 deletions
+14 -14
View File
@@ -445,7 +445,7 @@ class AckKnowledgeTests(unittest.TestCase):
tasks_data = {
"project": {
"name": "notes-web",
"knowledgeFile": "docs/ack/knowledge.yaml",
"knowledgeFile": ".pouch/ack/knowledge.yaml",
},
"tasks": [task],
}
@@ -470,7 +470,7 @@ class AckKnowledgeTests(unittest.TestCase):
tasks = {
"project": {
"name": "another-project",
"knowledgeFile": "docs/ack/knowledge.yaml",
"knowledgeFile": ".pouch/ack/knowledge.yaml",
},
"tasks": [],
}
@@ -502,7 +502,7 @@ class AckKnowledgeTests(unittest.TestCase):
tasks_data = {
"project": {
"name": "notes-web",
"knowledgeFile": "docs/ack/knowledge.yaml",
"knowledgeFile": ".pouch/ack/knowledge.yaml",
},
"tasks": [task],
}
@@ -522,7 +522,7 @@ class AckKnowledgeTests(unittest.TestCase):
tasks_data = {
"project": {
"name": "notes-web",
"knowledgeFile": "docs/ack/knowledge.yaml",
"knowledgeFile": ".pouch/ack/knowledge.yaml",
},
"tasks": [
{
@@ -567,7 +567,7 @@ class AckKnowledgeTests(unittest.TestCase):
}
with tempfile.TemporaryDirectory() as temp_dir:
project = Path(temp_dir) / "project"
ack_dir = project / "docs" / "ack"
ack_dir = project / ".pouch" / "ack"
ack_dir.mkdir(parents=True)
knowledge_path = ack_dir / "knowledge.yaml"
tasks_path = ack_dir / "tasks.yaml"
@@ -578,7 +578,7 @@ class AckKnowledgeTests(unittest.TestCase):
"project": {
"name": "notes-web",
"repoPath": str(project),
"knowledgeFile": "docs/ack/other.yaml",
"knowledgeFile": ".pouch/ack/other.yaml",
},
"tasks": [task],
}
@@ -595,9 +595,9 @@ class AckKnowledgeTests(unittest.TestCase):
errors = validate_knowledge.validate_task_references(data, tasks_data)
self.assertTrue(any("project.knowledgeFile 必填" in e for e in errors))
tasks_data["project"]["knowledgeFile"] = "docs/ack/knowledge.yaml"
tasks_data["project"]["knowledgeFile"] = ".pouch/ack/knowledge.yaml"
staging_root = Path(temp_dir) / "staging"
staged = staging_root / "docs" / "ack" / "knowledge.yaml"
staged = staging_root / ".pouch" / "ack" / "knowledge.yaml"
staged.parent.mkdir(parents=True)
staged.write_text(
yaml.safe_dump(data, allow_unicode=True), encoding="utf-8"
@@ -636,7 +636,7 @@ class AckKnowledgeTests(unittest.TestCase):
with tempfile.TemporaryDirectory() as temp_dir:
base = Path(temp_dir)
project = base / "project"
ack_dir = project / "docs" / "ack"
ack_dir = project / ".pouch" / "ack"
outside = base / "outside"
ack_dir.mkdir(parents=True)
outside.mkdir()
@@ -653,7 +653,7 @@ class AckKnowledgeTests(unittest.TestCase):
"project": {
"name": "notes-web",
"repoPath": str(project / "missing"),
"knowledgeFile": "docs/ack/not-the-current-file.yaml",
"knowledgeFile": ".pouch/ack/not-the-current-file.yaml",
},
"tasks": [task],
}
@@ -746,7 +746,7 @@ class AckKnowledgeTests(unittest.TestCase):
tasks_data = {
"project": {
"name": "notes-web",
"knowledgeFile": "docs/ack/knowledge.yaml",
"knowledgeFile": ".pouch/ack/knowledge.yaml",
},
"tasks": [task],
}
@@ -765,7 +765,7 @@ class AckKnowledgeTests(unittest.TestCase):
def test_cli_validates_tasks_and_selector_outputs_stable_refs(self) -> None:
with tempfile.TemporaryDirectory() as temp_dir:
project = Path(temp_dir) / "project"
ack_dir = project / "docs" / "ack"
ack_dir = project / ".pouch" / "ack"
ack_dir.mkdir(parents=True)
knowledge_path = ack_dir / "knowledge.yaml"
knowledge_path.write_text(
@@ -779,7 +779,7 @@ class AckKnowledgeTests(unittest.TestCase):
"project": {
"name": "notes-web",
"repoPath": str(project),
"knowledgeFile": "docs/ack/knowledge.yaml",
"knowledgeFile": ".pouch/ack/knowledge.yaml",
},
"tasks": [
{
@@ -878,7 +878,7 @@ class AckKnowledgeTests(unittest.TestCase):
def test_paired_examples_validate_when_installed_in_project_layout(self) -> None:
with tempfile.TemporaryDirectory() as temp_dir:
project = Path(temp_dir) / "notes-web"
ack_dir = project / "docs" / "ack"
ack_dir = project / ".pouch" / "ack"
ack_dir.mkdir(parents=True)
knowledge_path = ack_dir / "knowledge.yaml"
tasks_path = ack_dir / "tasks.yaml"